0
点赞
收藏
分享

微信扫一扫

http 报文格式、状态码

得一道人 2022-02-03 阅读 39

HTTP 报文格式
HTTP 报文由请求行、首部、实体组成,首部和实体之间由 CRLF(回车换行符) 分隔开。

请求报文格式:

<method> <request-URL> <version>
<headers>
<entity-body>
  • 请求方法、请求 URL、协议版本
GET /2.app.js HTTP/1.1
Host: 118.190.217.8:3389
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
Accept: *\/*
Referer: http://118.190.217.8:3389/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

响应报文格式:

<version> <status> <reason-phrase>
<headers>
<entity-body>
  • 协议版本、状态码、原因短语(如200跟上OK)
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Sat, 07 Mar 2020 03:52:30 GMT
ETag: W/"253e-170b31f7de7"
Content-Type: application/javascript; charset=UTF-8
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Fri, 15 May 2020 05:38:05 GMT
Connection: keep-alive
Transfer-Encoding: chunked

幂等和非幂等

  • 幂等:果一个请求不管执行多少次,其执行的副作用都是一样的,这个请求就是幂等的(如:get、head)
  • 非幂等:post(如相同url都是执行新增的操作)

请求方法

  • HEAD:只从服务器获取文档的头部不获取资源

  • PUT:PUT 方法的语义就是让服务器用请求的主体部分来创建一个由所请求的 URL 命名的新文档。 如果那个文档已存在,就覆盖它

  • POST:通常用来向服务器发送表单数据。

  • TRACE:客户端发起一个请求时,这个请求可能要穿过路由器、防火墙、代理、网关等。每个中间节点都可能会修改原始的 HTTP 请求,TRACE 方法允许客户端在最终发起请求时,看看它变成了什么样子。

    • TRACE 请求会在目的服务器端发起一个“环回”诊断。行程最后一站的服务器会弹回一条 TRACE 响应,并在响应主体中携带它收到的原始请求报文。 这样客户端就可以查看在所有中间 HTTP 应用程序组成的请求/响应链上,原始报文是否被毁坏或修改过。

在这里插入图片描述

  • OPTIONS: 预检测,请求 Web 服务器告知其支持的各种功能
  • DELETE: 让服务器删除请求 URL 所指定的资源。

首部报文
通用报文:

  • Connection:允许客户端和服务器指定与请求/响应连接有关的选项
  • Date:提供日期和时间标志,说明报文是什么时间创建的
  • MIME-version:给出了发送端使用的MIME版本
  • Trailer:如果报文采用了分块传输编码(chunked transfer encoding)方式,就可以用这个首部列出位于报文拖挂(trailer)部分的首部集合
  • Transfer-Encoding:告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式
  • Update:给出了发送端可能想要“升级”使用的新版本或协议
  • via:显示了报文经过的中间节点(代理、网关)

请求报文:

  • client-IPR:提供了运行客户端的机器的IP地址
  • From:提供了客户端用户的E-mail地址
  • Host:给出了接收请求的服务器的主机名和端口号
  • Referer:提供了包含当前请求URI的文档的URL
  • User-Agent:将发起请求的应用程序名称告知服务器
  • UA-Color:提供了与客户端显示器的显示颜色有关的信息
  • UA-CPU:给出了客户端CPU的类型或制造商
  • UA-Disp:提供了与客户端显示器(屏幕)能力有关的信息
  • UA-OS:给出了运行在客户端机器上的操作系统名称及版本
  • UA-Pixels:提供了客户端显示器的像素信息

响应报文:

实体首部报文:

  • ETag:与此实体相关的实体标记
  • Expires:实体不再有效,要从原始的源端再次获取此实体的日期和时间
  • Last-Modified:这个实体最后一次被修改的日期和时间
举报

相关推荐

0 条评论