这篇主要讲如下几点:web
1.报文是如何流动的服务器
2.http报文的三个组成部分(起始行、首部和实体部分)spa
3.请求和响应报文之间的区别3d
4.和响应报文一块儿返回的各类状态码代理
5.各类各样的HTTP首部都是用来干什么的blog
报文流
事务
http报文是在http应用程序之间发送的数据块。这些数据以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。这些报文在客户端、服务端和代理之间的流动,术语“流入”、“流出”、“上游”及“下游”都是用来描述报文方向的资源
报文流入源端服务器web服务器
HTTP使用术语流入、流出来描述事务的方向,报文流入源端服务器,工做完成以后,会流回用户的agent代理中。如图3-1
it
报文向下流出
HTTP报文会想河水同样流出,无论是请求报文仍是响应报文,全部的报文都会向下游流动,图3-2
报文组成部分
HTTP报文是简单的格式化数据块。它由三部分组成:对报文进行描述的起始行(start line)、包含属性的首部(header)块、以及可选的、包含数据的主体(body)部分
请求和响应报文之间的区别
全部的HTTP报文均可以分为两类:请求报文和响应报文。请求报文会向web服务器请求一个动做,响应报文会将请求的结果返回给客户端。请求报文和响应的报文的结构相同。如图3-4
请求报文的格式:<method><request-URL><version>
<headers>
<entity-body>
响应报文的格式:<version><status><reason-phrase>
<headers>
<entity-body>
部分简要描述:
<method>方法:客户端但愿服务器对资源执行的动做,如GET\POST\HEAD\PUT
<request-URL>请求URL
<version>版本:报文所使用的HTTP版本,如HTTP1.0 :HTTP/<major>.<minor>
<status>状态码
<reason-phrase>缘由短语:数字状态的可读版本,包含终止序列以前的全部文本。
<headers>首部
<entity-body>实体的主体部分
起始行
全部的HTTP报文都以一个起始行做为开始。请求报文的起始行说明了要作什么。响应报文的起始行说明发生什么
请求行:请求报文请求服务器对资源进行一些操做。请求报文的起始行,或称为请求行,包含了一个方法和一个请求URL,这个方法描述了服务器应该执行的操做,请求URL描述了要对哪一个资源执行这个方法。请求行中还包含HTTP的版本,用来告知服务器,客户端使用的是哪一种HTTP。
响应行:响应报文承载了状态信息和操做产生的全部结果数据,将其返回给客户端。响应报文的起始行,或称为响应行,包含了响应报文使用的HTTP版本、数字状态码,以及描述操做状态的文本形式的缘由短语。
方法
经常使用的http方法
状态码
状态码分类
常见的状态码
首部分类
状态码