目录

请求

请求方法

两者区别

其他请求方式

请求报文

请求行

请求头

​​​​​​​​​​​​​​请求体

响应

响应行

响应状态码

响应头

响应体


请求

请求,由客户端向服务端发出,可以分为3部分内容:请求方法(Request Method) 、请求的网址( Request URL )、请求报文(Request message)

请求方法

常见的请求方法有两种:GET和POST。

在浏览器中直接输入 URL 并回车,这便发起了一个 GET 请求,请求的参数会直接包含到 URL里。例如,在百度中搜索 Python ,这就是一个 GET 请求,链接为 https://www. baidu.corn/s?wd=Pthon,其中 URL 中包含了请求的参数信息,这里参数 wd 表示要搜寻的关键字 。

POST 请求大多在表单提交时发起。比如,对于一个登录表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个 POST请求,其数据通常以表单的形式传输,而不会体现在 URL中。

两者区别

  • GET 请求中的参数包含在 URL 里面,数据可以在 URL 中看到,而 POST 请求的 URL 会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。
  • GET 请求提交的数据最多只有 1024 字节,而 POST 方式没有限制。

一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用 GET 方式请求的话,密码就会暴露在 URL 里面,造成密码泄露,所以这里最好以 POST 方式发送。上传文件时,由于文件内容比较大,也会选用 POST 方式。

其他请求方式

请求报文

由请求行、请求头、请求体组成

请求行

由请求方式和HTTP协议和版本组成

如:GET / HTTP/1.1

请求头

请求头,用来说明服务器要使用的附加信息,比较重要的信息有 Cookie 、Referer、User-Agent等。下面简要说明一些常用的头信息。

  • Accept
    • ​​​​​​​请求报头域,用于指定客户端可接受哪些类型的信息。
  • ​​​​​​​Accept-Language
    • ​​​​​​​指定客户端可接受的语言类型。
  • ​​​​​​​Accept-Encoding
    • ​​​​​​​指定客户端可接受的内容编码。
  • ​​​​​​​Host
    • ​​​​​​​用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位置。从HTTP 1. 版本开始,请求必须包含此内容。
  • ​​​​​​​Cookie
    • ​​​​​​​也常用复数形式 Cookies ,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访问会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies 的功劳。Cookies 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookies 并将其发送给服务器,服务器通过 Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。​​​​​​​​​​​​​​
  • ​​​​​​​Referer
    • ​​​​​​​此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这 信息并做相应的处理,如做来源统计、防盗链处理等。
  • ​​​​​​​User-Agent
    • 简称 UA ,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本 浏览器及版本等信息 在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别出为爬虫。

  • ​​​​​​​Content-Type

    • 也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如, text/html 代表 HTML 格式,image/gif 代表 GIF 图片, application/json 代表JSON 类型,

    • 在爬虫中,如果要构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type,不然可能会导致 POST 提交后无法正常响应。

    • ​​​​​​​​​​​​​​

​​​​​​​​​​​​​​​​​​​​​请求体

内容是 POST 请求中的表单数据,而对于 GET 请求,请求体则为空。

响应

响应,由服务端返回给客户端,响应报文可以分为三部分:响应行( Response line )、响应头( Response Headers )和响应体( Response Body)。

响应行

由HTTP版本响应、状态码、状态描述组成。

如;HTTP/1.1 200 OK

响应状态码

表示服务器的响应状态。

常见的状态码有:

  • 200
    • 请求成功
  • 307
    • 重定向
  • 400
    • 错误的请求
  • 404
    • 请求资源在服务器中不存在
  • 500 
    • 服务器内部源代码出现错误

状态码和错误原因如下图:

 ​​​​​​​

响应头

用来说明响应的数据

常用的响应头如下:

  • Accept-Patch
    • 指定服务器所支持的文档补丁格式
  • Accept-Ranges
    • 服务器所支持的内容范围
  • Content-Disposition
    • 对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。
  • Content-Encoding
    • 响应资源所使用的编码类型。
  • Content-Language
    • 响就内容所使用的语言
  • Content-Length
    • 响应消息体的长度,用8进制字节表示
  • Content-Type
    • 当前内容的MIME类型
  • Date
    • 此条消息被发送时的日期和时间(以RFC 7231中定义的"HTTP日期"格式来表示)
  • Expires
    • 指定一个日期/时间,超过该时间则认为此回应已经过期
  • Server
    • 服务器的名称

响应体

就是网页的代码

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐