HTTP请求与响应报文结构

HTTP请求报文结构

  • HTTP请求报文由三部分组成:请求行请求头请求体

请求行

  1. 请求行由请求方法、URL和HTTP协议版本3个字段组成。
  2. 其中的HTTP协议版本有两种:HTTP1.0和HTTP1.1
  3. HTTP1.0对于每个连接都只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Host字段;而HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,HTTP1.1必须有Host字段。

请求头

  • 向服务器发送请求的时候必须指明请求类型(一般是GET或者 POST)。如有必要,客户端还可以选择发送其他的请求头。

常见的请求头字段含义:

请求首部 作用
Accept 能正确接收的媒体类型
Accept-Charset 能正确接收的字符集
Accept-Encoding 能正确接收的编码格式列表
Accept-Language 能正确接收的语言列表
From 请求方邮箱地址
Host 服务器的域名
If-Match 两端资源标记比较
If-Modified-Since 本地资源未修改返回 304 (比较时间)
If-None-Match 本地资源未修改返回 304(比较标记)
User-Agent 客户端信息
Proxy-Authorization 向代理服务器发送验证信息
TE 传输编码方式

请求体

  • 若方法字段是GET,则此项为空,参数直接置于请求行URL中
  • 若方法字段是POST,则通常来说此处放置的就是要提交的数据

HTTP响应报文结构

  • HTTP响应报文也由三部分组成:响应行响应头响应体

响应行

  1. 响应行一般由协议版本、状态码及其描述组成 比如 HTTP/1.1 200 OK
  2. 其中协议版本HTTP/1.1或者HTTP/1.0,200就是它的状态码,OK则为它的描述。

常见状态码:

  • 100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
  • 200~299:表示成功接收请求并已完成整个处理过程。常用200
  • 300~399:重定向。例如:请求的资源已经移动一个新地址、常用302(意味着你请求我,我让你去找别人),307和304(我不给你这个资源,自己拿缓存)
  • 400~499:客户端的请求有错误,常用404(意味着你请求的资源在web服务器中没有)403(服务器拒绝访问,权限不够)
  • 500~599:服务器端出现错误,常用500

响应头

  • 响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理返回的数据。

常见的响应头字段含义:

响应首部 作用
Accept-Ranges 是否支持某些种类的范围
Age 资源在代理缓存中存在的时间
ETag 资源标识
Location 客户端重定向到某个 URL
Proxy-Authenticate 向代理服务器发送验证信息
Server 服务器名字
WWW-Authenticate 获取资源需要的验证信息

响应体

  • 服务器返回给客户端的数据,为响应体。如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码。

你可能感兴趣的:(计算机网络)