状态码
100~199 信息性状态码
200~299 成功状态码
300~399 重定向状态码
400~499 客户端状态码
500~599 服务器状态码
状态码的详细信息,后面遇到的时候再深入讲,现在不讲。
首部
首部和方法配合工作,共同决定了客户端和服务器能做什么事情。
在请求报文和响应报文中都可以使用首部来提供信息,首部主要分以下五个主要类型:
- 通用首部
- 请求首部
- 响应首部
- 实体首部
- 扩展首部
通用首部
提供与报文相关的最基本的信息,就是通用首部,不管是请求报文还是响应报文,用通用报文都是一个意思,就像日期。
HTTP/1.0 引入了第一个允许HTTP应用程序缓存对象本地副本的首部,这样就不需要总是直接从源服务器获取。下面是基本的缓存头部
请求首部
在请求报文中才有意义,用于说明 是谁或者什么在发送请求、请求源自何处,或者客户端的喜好和能力,服务器可以根据客户端的请求首部来提供更好的响应。
下表是请求的信息性首部
Accept首部
Accept首部为客户端提供了一种将其喜好和能力告知服务器的方式,包括它想要什么、可以使用什么、以及它不想要什么。Accept首部是客户端与服务器双方收益的首部,客户端会得到他们想要的内容,服务器不会浪费时间和带宽去发送客户端无法使用的东西。
条件请求首部
客户端在发送请求的时候,加上条件限制,比如,客户端已经有一份文档副本,希望只在服务器上的文档与客户端拥有的副本有所区别时,才请求服务器传输文档。通过条件请求首部,客户端就可以加上这些限制,要求服务器在对请求进行响应之前,确保某个条件为真。
响应首部
响应首部为客户端提供了一些额外信息,比如谁在发送响应、响应者的功能,甚至与响应相关的一些特殊指令。
实体首部
实体首部就是可以告知报文的接收者它在对什么进行处理。
内容首部
内容首部提供了与实体首部有关的特定信息,说明了其类型、尺寸以及处理它所需的其他有用信息。例如可以获取返回的内容的类型等
HTTP报文抓包
上面的内容 以及
上一篇博客 的内容,基本上HTTP报文的基础概念都清楚了,下面是使用Wireshark抓包的两个http报文
分别是请求报文和响应报文
这个报文请求一个html文档,每行都是以 \r\n 换行回车结束 从Accept开始是头部
上面是一个响应报文,除了有起始行、头部外也有主体