HTTP协议的报文结构
HTTP 有两类报文:
(1) 请求报文----从客户向服务器发送请求报文,见图6-12(a).
(2) 响应报文----从服务器到客户的回答,见图6-12(b).
由于 HTTP是面向文本的(text-oriented),因此在报文中的每一个字段都是一些ASCII码串,因而每个字段的长度都是不确定的。
HTTP请求报文和响应报文都是由三个部分组成。可以看出,这两种报文格式的区别就是开始行不同。
(1) 开始行 用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行(Request-Line),
而在响应报文中的开始行叫做状态行(Staus-Line).在开始行的三个字段之间都以空格隔开,最后的“CR”
和“LF”分别表示“回车”和“换行”。
(2)首部行 用来说明浏览器,服务器或报文主体的一些信息。首部可以有好几行,也可以不使用。
在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要有“回车”和“换行”。整个首部行
结束时,还有一空行将首部行和后面的实体主体分开。
(3)实体主体 在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。
下面介绍HTTP请求中最主要的一些主要特点。
请求报文中的第一行“请求行”,只有三个内容,即方法,请求资源的URL,以及HTTP的版本。
请注意:这里的名词“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的
操作,这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采取的方法决定的。表6-1
给出了请求报文中常用的几种方法。

下面是一个请求报文的例子:
GET /chn/yxsz/index.htm HTTP/1.1 (请求使用了相对URL)
Host: www.tsinghua.edu.cn (此行是首部行的开始,这行给出了主机的域名)
Connection: close(告诉服务器发送完请求的文档后就可以释放连接了)
User-Agent: Mozilla/5.0 (表明用户代理是使用Netscape浏览器)
Accept-Language:cn (表示用户希望优先得到中文版本的文档)
(请求报文的最后还有一个空行)
在请求行使用了相对URL(即省略了主机的域名)是因为下面的首部行(第二行)给出了主机的域名。
第三行是告诉服务器不使用持续连接,表示浏览器希望服务器在传送完所请求的对象后即关闭TCP连接。这个请求报文
没有实体主体。
在看看HTTP响应报文的主要特点。
每一个请求报文发出后,都能收到一个响应报文,响应报文的第一行就是状态行。
状态行包含三项内容:HTTP的版本,状态码,以及解释状态码的简单语句。
状态码都是三位数字的,分为5大类共33种。例如:
1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或是知道了。
3xx 表示重定向,如要完成请求还必须采取下一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。
节选自《计算机网络》(第五版)谢希仁
HTTP协议的报文结构的更多相关文章
- 【HTTP】二、HTTP协议的报文结构
HTTP有两类报文:请求报文和响应报文,由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII码串,因而每个字段的长度都是不确定的.(HTTP2引 ...
- HTTP协议报文结构及示例
HTTP基本架构 下面我们用一张简单的流程图来展示HTTP协议基本架构,以便大家先有个基本的了解. 9.png Web Client可以是浏览器.搜索引擎.机器人等等一切基于HTTP协议发起http请 ...
- 报文分析4、TCP协议的头结构
TCP协议的头结构 来源端口(2字节) 目的端口(2字节) 序号(4字节) 确认序号(4字节) 头长度(4位) 保留(6位) URG ACK PSH RST SYN PIN 窗口大小(2字节) 校验和 ...
- 报文分析5、UDP协议的头结构
UDP协议的头结构 源端口(2字节) 目的端口(2字节) 封报长度(2字节) 校验和(2字节) 数据 (1)源端口(Source Port):16位的源端口域包含初始化通信的端口号.源端口和IP地址的 ...
- HTTP 协议基础概念和报文结构
基础概念 1.WWW(World Wide Web,万维网)构建技术有3项: (1)把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文 ...
- HTTP协议图--HTTP 协议报文结构
1.HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文.请求端(客户端)的 HTTP 报文叫做请求报文:响应端(服务器端)的叫做响应报文.HTTP 报文本身是由多行(用 CR[car ...
- 接口测试01 - HTTP协议报文结构及示例
HTTP基本架构 用一张简单的流程图来展示HTTP协议的基本架构,以便先有个基础的了解. 1)Web Client可以是浏览器.搜索引擎等等一切基于HTTP协议发起http请求的工具. 2)Web S ...
- 报文分析3、ICMP协议的头结构
ICMP协议的头结构 类型(8位) 代码(8位) 校验和(8位) 类型或者代码 (1)类型:一个8位类型字段,表示ICMP数据包类型. (2)代码:一个8位代码域,表示指定类型中的一个功能.如果一 ...
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
随机推荐
- SQL 数据分页查询
最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...
- AjaxStudyNote
AjaxStudyNoteBy:Silvers:(E:\Video_Tutorials\Java自学视频\尚硅谷JavaEE培训\6WEB基础-Ajax)15:02 2016/2/29什么是AjaxA ...
- AS3中 Event 类的target和currentTarget属性
在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数.通过这个参数就可以使用事件类的属性和方法.其中target与currentTarget属性是两个很相似的属性. 对于简单的事件处理过程,分清 ...
- 关于xfce桌面程序启动失败
当双击桌面图标的时候,出现如下错误信息:Process org.xfce.FileManager exited with status 1 于是做出如下尝试: 1. ps aux | grep Fil ...
- linux格式批量转换为dos格式
注:写的只是基本知识,望高手勿喷,写这个不是为了炫耀,只是为了方便其他人,仅此而已. 一:脚本功能: 批量处理目录以及子目录下的文件格式问题,能够轻易的将linux格式转换为dos格式. 二:写此博客 ...
- CocoaPods和git
CocoaPods是第三方框架的管理工具 CocoaPods 安装使用步骤: 1. 利用 gem 安装 CocoaPods! 1> gem 服务器在国外,提供了非常丰富的终端应用程序! gem ...
- AppCan JSSDK模块扩展
1. 从源码开始: 我们先看源码的8188行到9525行: window.appcan && appcan.define('window',function($,export ...
- UVA 11624 BFS的妙用
题意: 迷宫里起火了,有若干个障碍物,有多个起火点,起火点每经过一个时间间隔就向它的上下左右相邻的格子扩散. 有个倒霉的人好像叫做“Joe”,他要逃出来,他每次可以向上下左右任意移动一格,但是即要避开 ...
- PARENT VIEW INVALIDATE
如果启动display list,parentview 调用invalidate,子view是不会是去调用onDraw的,因为直接调用displaylist了,如果parentview认为子view应 ...
- 揭秘史上最完美一步到位的搭建Andoriod开发环境
Windows环境下Android开发环境搭建虽然不难而且网上资料众多,但是众多资料如出一折 忽略了很多细节,最终还是没能达到满意效果. 基本步骤如下:JDK安装.环境变量配置.Eclipse下载.A ...