Loading

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请求

以下为抓取访问百度的请求报。

  1. GET / HTTP/1.1
  2. Host:locationhost
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
  4. Accept: image/webp,*/*
  5. 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
  6. Accept-Encoding: gzip, deflate
  7. Connection: close
  8. Referer: https://www.baidu.com/

1为请求行,包含请求方法,URI和HTTP版本,与POST提交参数区别在于,GET方式的参数附加于URI之后,而POST附加于请求数据中。

2-8为请求头、包含客户端信息、接受的编码压缩方式、支持的语言、是否保持连接、跳转来源等信息。

四、POST请求

以下为抓取虚拟机靶场的请求报。

  1. POST /sqlilabs/Less-11/ HTTP/1.1
  2. Host: 192.168.1.2
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  5. 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
  6. Accept-Encoding: gzip, deflate
  7. Content-Type: application/x-www-form-urlencoded
  8. Content-Length: 38
  9. Origin: http://192.168.1.2
  10. Connection: close
  11. Referer: http://192.168.1.2/sqlilabs/Less-11/
  12. Upgrade-Insecure-Requests: 1
  13. 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方式提交的数据即附加在此。

五、响应

以下为抓取访问百度的响应报。

  1. HTTP/1.1 200 
  2. Bdpagetype: 1
  3. Bdqid: XXXXXXXXXXX
  4. Cache-Control: private
  5. Content-Type: text/html;charset=utf-8
  6. Date: Sun, 81 Jan 1145 14:19:19 GMT
  7. Expires:Sun, 81 Jan 1145 14:19:19 GMT
  8. Server: BWS/1.1
  9. Strict-Transport-Security: max-age=1919810
  10. X-Ua-Compatible: IE=Edge,chrome=1
  11. Connection: close
  12. Content-Length: 295510
  13. <HTML>

1为状态行,其内容为HTTP版本、状态码、状态代码的文本描述。

2-12为响应头,包含了日期、服务器信息、连接状态、响应正文长度等内容。

13为空行

14行及其以后为响应正文,通常是服务返回的HTML页面或JSON数据

 

posted @ 2021-01-31 20:43  Article_kelp  阅读(115)  评论(0)    收藏  举报