理解HTTP协议之报文(一)
2012-12-15 22:59
357 查看
理解HTTP协议之报文(一)
什么是HTTP报文HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块是以文本形式的元信息开头,这些描述了报文的内容及含义,后面的跟着可选的数据部分。这些报文在客户端、服务器和代理之间流动。术语“流入”、“流出”、“上游”及“下游”都是用来描述报文方向的。
报文流入源端服务器
HTTP流入和流出来描述事务处理的方向。报文流入服务器端,工作完成后,会流回用户的Agent代理中。
报文向下游流动
HTTP报文会像流水一样流动。不管是请求报文还是相应报文,所有报文都会向下游流动。所有报文的发送者都是在接受者的上游。
报文的组成部分
HTTP报文是简单的格式化数据块。每条报文到包含一条来自客户端的请求或一条来自服务器端的相应。他们有三个部分组成:对报文进行描述的起始行、包含属性的首部(header)块,以及可选的、包含数据的主体(body)部分。
报文的语法
所有的HTTP报文都可以分为两类:请求报文(request message)和响应报文(response message)。请求报文会向web服务器请求一个动作。响应报文会将请求的结果返回给客户端。请求和响应的报文基本结构相同。
请求报文的格式:
<method> <request-URL> <version>
<headers>
<entity-body>
响应报文的格式:
<version> <status> <reason-phrase>
<headers>
<entity-body>
方法 (method)
客户端希望服务器对资源执行的动作。是一个单独的词,比如GET、HEAD或POST。
请求Url
命名了所请求的资源,或者URL路径组件的完整URL。如果直接与服务器进行对话,只要URL的路径是资源的绝对路径,通常就不会有什么问题---服务器可以假定自己是URL的主机/端口。
版本(version)
报文所使用的HTTP版本,其格式看起来是这样的:
HTTP/<major>.<minor>
状态码(status-code)
这三位数字描述了请求过程中所发生的情况。每个状态码的第一位数字都用于描述状态的一般类型(“成功”、“出错”等)。
原因短语(reason-phrase)
数字状态码的可读版本,包含行终止序列之前的所有文本。
首部(header)
可以有零个或多个首部,每个首部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,接着是一个值,最后是一个CRLF。
首部是由一个空行(CRLF)结束的,
实体的主体部分(entity-body)
实体的主体部分包含一个由任意数据组成的数据块。并不是所有的报文都包含实体的主体部分,有时,报文只是以一个CRLF结束。
相关文章推荐
- 理解HTTP协议之报文(三)
- 理解HTTP协议之报文(四)
- HTTP协议理解与应用总结
- http协议(二)请求和响应报文的构成
- http协议 请求报文和响应报文
- HTTP协议扫盲(八 )响应报文之 Transfer-Encoding=chunked方式
- HTTP协议之报文格式
- Java基础之Http协议的理解与总结
- 全面理解HTTP协议
- 2016.8.25--对HTTP协议的一些理解
- 初识HTTP协议--请求与响应报文
- 深入理解HTTP协议之POST方法——ajax实例
- HTTP协议理解与应用总结
- http协议学习-全面理解HTTP
- 从HTTP协议演进理解HTTP协议
- HTTP协议的报文结构
- HTTP协议理解与应用总结
- 对http协议的一点理解
- 深入理解HTTP协议、HTTP协议原理分析
- Http协议的理解