若是你还搞不懂HTTP报文

组成

HTTP报文由三部分组成:html

  1. 起始行:报文的第一行就是起始行,在请求报文中用来讲明要作些什么,在响应报文中说明出现了什么状况
  2. 报文头:起始行后面有零个或多个字段。每一个字段都包含一个名字和一个值,为了便于解析,二者之间用冒号(:)来分隔,首部以一个空行结束
  3. 主体:空行以后就是可选的报文主体了,其中包含了全部类型的数据。请求主体是要发送给服务器的数据;响应主体是要返回给客户端的数据。起始行和报文都是文本且都是结构化的,而主体则不一样,主体中能够包含任意的二进制数据(好比图片、视频)。固然,主体中也能够包含文本。

请求报文

一个请求报文起始行的例子:浏览器

GET /dir/index.html HTTP/1.1
  • GET:这里指明请求方法是GET,还有其它方法好比POST、DELETE、HEAD、OPTIONS、PUT、TRACE
  • /dir/index.html:这里指明URL,它和报文头的Host属性组成完整的请求URL
  • HTTP/1.1:这里指明协议名称及版本号

报文头里有不少的字段,具几个常见的例子:缓存

  • Host:请求的服务器地址,好比www.google.com
  • Accept: 指明客户端能够接受的数据类型,好比text/html
  • Cookie:携带的Cookie信息
  • Cache-Control:对缓存进行控制,指明一个请求但愿响应返回的内容在客户端要被缓存多久或是否缓存

还有很是多的字段,能够查阅文档,例如 HTTP MDN服务器

最后举一个请求主体的例子:google

name=ning&age=24

这里的请求主体就是咱们提交的表单里的数据。spa

响应报文

一个响应报文起始行的例子:code

HTTP/1.1 200 OK

跟请求报文比,响应报文的起始行里多了一个状态码来告诉客户端本次请求的处理结果。如下是状态码的类型:视频

图片描述

例如:
200 OK
303 See Other
304 Not Modified
404 Not Found
500 Internal Server Error htm

关于响应报文头里面的各类字段,能够查阅文档 HTTP MDNblog

总结

这些就是关于HTTP报文的基本知识点,其实内容最多地方是报文头里各类字段的用法,好比不少字段是用来作浏览器缓存控制的。由于涉及字段的内容太多了,更具体的字段用法能够查阅文档 HTTP MDN