HTTP请求与响应
一、简介
本文基于互联网资源学习HTTP请求与响应后总结得出,大体记录HTTP相关知识,由于资源来自互联网,不免学习资源有误以至总结错误(出于个人才疏学浅,入门不久,内容粗糙简短,请见谅)。
二、请求方法分类
- GET
- POST
- HEAD
- DELETE
- PUT
- TRACE
- OPTIONS
除了浏览器可以发送HTTP,其他满足HTTP协议要求的工具也可以发送HTTP。请求方法多用GET和POST,其他方法大多被禁止。
HEAD :HEAD和GET基本一致但HEAD不返回主体信息,常用确认内容是否存在,被HTTP协议支持,持但是服务端不一定允许使用。
TRACE :可用来测试使用代理上网后,代理是否修改HTTP请求,web服务器会把最后收到请求返回。
OPTION :返回服务器可用方法。
三、GET请求
以下为抓取访问百度的请求报。
- GET / HTTP/1.1
- Host:locationhost
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
- Accept: image/webp,*/*
- Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
- Accept-Encoding: gzip, deflate
- Connection: close
- Referer: https://www.baidu.com/
1为请求行,包含请求方法,URI和HTTP版本,与POST提交参数区别在于,GET方式的参数附加于URI之后,而POST附加于请求数据中。
2-8为请求头、包含客户端信息、接受的编码压缩方式、支持的语言、是否保持连接、跳转来源等信息。
四、POST请求
以下为抓取虚拟机靶场的请求报。
- POST /sqlilabs/Less-11/ HTTP/1.1
- Host: 192.168.1.2
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
- Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
- Accept-Encoding: gzip, deflate
- Content-Type: application/x-www-form-urlencoded
- Content-Length: 38
- Origin: http://192.168.1.2
- Connection: close
- Referer: http://192.168.1.2/sqlilabs/Less-11/
- Upgrade-Insecure-Requests: 1
- uname=admin&passwd=admin&submit=Submit
1为请求行,包含与GET方式相同的内容,但其URI后面不附加参数。
2-12为请求头,除了包含GET方式的内容外,还增加了指明提交参数格式的"Content-Type:"和参数长度的"Content-Length",GET方式转换为POST方式除了在请求行修改请求方式’、请求URI意外,还需再请求头中增加"Content-Type: application/x-www-form-urlencoded"表示提交参数的格式,而关于提交参数长度的"Content-Length"不为必须添加。
13为空行,用来区分隔开请求头和请求数据。
14行及其以后为请求数据,POST方式提交的数据即附加在此。
五、响应
以下为抓取访问百度的响应报。
- HTTP/1.1 200
- Bdpagetype: 1
- Bdqid: XXXXXXXXXXX
- Cache-Control: private
- Content-Type: text/html;charset=utf-8
- Date: Sun, 81 Jan 1145 14:19:19 GMT
- Expires:Sun, 81 Jan 1145 14:19:19 GMT
- Server: BWS/1.1
- Strict-Transport-Security: max-age=1919810
- X-Ua-Compatible: IE=Edge,chrome=1
- Connection: close
- Content-Length: 295510
- <HTML>
1为状态行,其内容为HTTP版本、状态码、状态代码的文本描述。
2-12为响应头,包含了日期、服务器信息、连接状态、响应正文长度等内容。
13为空行
14行及其以后为响应正文,通常是服务返回的HTML页面或JSON数据

浙公网安备 33010602011771号