第3章 HTTP报文

1、报文流

HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。可以把报文流比喻成水流,对于水来说是永远往低处流的,报文流也是如此。不论是从客户端流向服务器还是从服务器流向客户端,接收报文的那个端永远都是下游。

2、HTTP报文的组成成分。

包括起始行,首部和主体。起始行和首部是由行分割的ASCII文本。每行以一个由两个字符组成的行终止序列作为结束(CRLF)

2.1、起始行

对于请求行来说包含请求方法,请求URL以及HTTP的版本。对于响应行来说包含HTTP版本,数字状态码和原因短语。

2.1.1、方法

报纸服务器要做什么。常用的HTTP方法有7种:

GET:从服务器获取一份文档。

HEAD:只从服务器获取文档的首部。

POST:向服务器发送需要发处理的数据

PUT:将请求的主体部分存储在服务器上

TRACE:对可能经过代理服务器传送到服务器上去的报文进行追踪

OPTIONS:决定可以在服务器上执行哪些方法

DELETE:从服务器上删除一份文档。

注:除了POST和PUT包含主体外其余都不包含。而且并非所有的服务器都支持这7种方法。除了这些外,有些服务器可能还有一些自己的请求方法。

GET和HEAD方法被认为是安全方法,这意味着使用这两个方法的HTTP请求都不会产生什么动作。按照我的理解,这意思就是说服务器不会因为这两个方法而执行一个动作。例如用POST请求,服务器就会为用户执行一个动作,像登录的时候发送用户名和密码用的就是POST请求,这时服务器会在数据库中进行匹配,然后将结果返回给用户。

通常用POST来支持HTML表单。表单中填好的数据会被发送给服务器,然后由服务器将其发送到它要去的地方,比如发送到一个服务器网关程序中,然后由这个程序对其进行处理。

客户端发起一个请求时,这个请求可能会穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的HTTP请求。TRACE方法允许客户端在最终将请求发送给服务器时,看看它变成了什么样子。这让我想起了我国伟大的防火墙——GFW。尤其是在访问国外网站时,报文在通过GFW时可能就被进行了修改,因此最终服务器返回一个404错误的响应报文。。。

DELETE方法做的事情是请服务器删除请求URL所指定的资源,但是客户端应用程序无法保证删除操作一定会被执行。因为HTTP规范允许服务器在不通知客户端的情况下撤销请求。

2.1.2、状态码

告诉客户端发生了什么。共分为5大类。

100~199——信息性状态码。它的目的是对这样的情况进行优化:HTTP客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前查看一下服务器是否会接收这个实体。

200~299——成功状态码

详细代码的含义请看P64

300~399——重定向状态码

返回一个可选的Location首部来告诉客户端资源被移走了,并提供一个地址。一般浏览器都在不打扰用户的前提下,直接转向那个地址。详细请看P65-67

400~499——客户端错误状态码

客户端如果发送一些服务器无法处理的东西,比如格式错误的请求报文,或是不存在的URL。这让我觉得我国的GFW是不是在请求报文传输的时候改动了URL,从而导致服务器端无法处理。

500~599——服务器错误状态码

详细看P69-70

2.2、首部

是一些名/值对列表。可以分为通用首部,请求首部,响应首部,实体首部,扩展首部。

各首部的详细信息可看书P71-76

时间: 2024-10-11 11:05:06

第3章 HTTP报文的相关文章

【HTTP权威指南】第三章-HTTP报文

HTTP是因特网的信使,报文就是信使运送的包裹. 这一章包含: 报文如何流动 报文的三个组成部分(起始行,首部,实体的主体部分) 请求报文和响应报文的区别 请求报文支持的各种功能(方法) 响应报文返回的状态码 各种HTTP首部是用来做什么的

《HTTP权威指南》第三章 HTTP报文

报文的组成部分 ? ? 报文由三个部分组成:对报文进行描述的起始行(start line).包含属性的首部(header)块,以及可选的.包含数据的主体(body)部分. ? ? 所有的 HTTP 报文都以一个起始行作为开始.请求报文的起始行也就是请求行说明了要做些什么.响应报文的起始行也就是响应行说明发生了什么. ? ? 请求行包含了一个方法和一个请求 URL,这个方法描述了服务器应该执行的操作,请求 URL 描述了要对哪个资源执行这个方法.请求行中还包含 HTTP 的版本,用来告知服务器,客

第三章 http报文

学习以下概念 1,报文如何流动 2,http报文三个组成部分(起始行,首部,主体) 3,请求报文和响应报文区别 4,请求报文支持的功能 5,响应报文返回状态码 6,http首部用来做什么 报文流动,所有的报文都是上游向下游流动,即所有的报文发送者都在报文接收者的上游 http报文三部分组成,起始行,首部,主体(可选) 最好用空行隔开 请求报文和响应报文区别 请求报文格式 <method(请求方法)><request-URL(请求地址)><version(协议版本号)>

(第三章,第四章)http报文内的http信息,返回结果的http状态码

第三章 http报文内的http信息 用于http协议交互的信息被称为http报文,包括请求报文和响应报文. 1.编码提升传输速率,在传输时编码能有效的处理大量的访问请求.但是编码的操作是计算机完成的,会消耗更多的cpu资源. 2.压缩传输的内容编码: 内容编码后的实体由客户端接受并负责解码. 3.分割发送的分块传输编码 在传输大量数据时,通过数据分割成多块,能够让浏览器逐步显示页面. 4.获取部分内容的范围请求: 可以处理大文件突然下载中断的问题. 5.内容协商返回最合适的内容 比如根据浏览器

《图解Http》 2-6章: 基础,报文,状态码,首部。

HTTP协议和Cookie 是stateless协议,自身不对请求和响应之间的通信状态进行保存.但随着技术发展,为了实现保存状态的功能,引入了Cookie技术. Cookie在请求和响应报文中写入信息来控制客户端的状态. Cookie根据从服务器发送的响应报文内的Set-Cookie的首部字段信息,通知客户端保存Cookie. 下次客户端发送请求时,会在报文中加入Cookie值. 服务器收到报文后,检查Cookie,确认是哪个客户端发过来的连接请求,然后再对比服务器上的记录,得到之前的状态信息.

《HTTP权威指南》读书笔记(第一章~第三章)

第一章 HTTP概述 超文本传输协议 HTTP(HyperText Transfer Protocol) Web服务器使用HTTP协议,通常也称HTTP服务器.Web服务器是Web资源(Web resource)的宿主.最简单的Web资源就是Web服务器文件系统中的静态文件.这些文件可包括任意内容:文本.HTML.图片.视频等等.Web服务器会为所有HTTP对象数据附加一个MIME类型的数据格式标签.(Multipurpose Internet Mail Extension 多用途因特网邮件扩展

HTTP权威指南 1~6章笔记

前些日子看了这本经典的书,基本已经看完,上面有许多有用的信息,以下为前六章的笔记: 第一章 http是应用层协议,TCP应用在传输层,IP在网络层 TCP提供 无差错的数据传输,按顺序传输,未分段传输(可以随时传递任意长度数据) HTTP客户端在向服务器发送报文之前需要用ip地址和端口号建立一条TCP/IP连接 主机名即为网址,可以通过DNS(域名服务)转换为ip地址,默认端口号为80 浏览器获取html资源的步骤: 解析出主机名 DNS转换为ip地址 解析出端口号 建立TCP连接 发送http

第1章 Sniffer软件简介

第1章  Sniffer软件简介 概述 Sniffer软件是NAI公司推出的功能强大的协议分析软件.本文针对用Sniffer Pro网络分析器进行故障解决.利用Sniffer Pro 网络分析器的强大功能和特征,解决网络问题,将介绍一套合理的故障解决方法. 与Netxray比较,Sniffer支持的协议更丰富,例如PPPOE协议等在Netxray并不支持,在Sniffer上能够进行快速解码分析.Netxray不能在Windows 2000和Windows XP上正常运行,Sniffer Pro

图解HTTP

第一章 TCP/IP的分层管理 应用层:决定了向用户提供应用服务时的通信的活动.比如:FTP(文件传输协议),DNS(域名系统),HTTP 传输层:对上层应用层,提供了处于网络连接中的两台计算机之间的数据传输.TCP,UDP 网络层:用来处理在网络上流动的数据包(网络传输的最小数据单位),该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方. 数据链路层:处理连接网络的硬件部分,比如,硬件的设备驱动,NIC,光纤 利用TCP/IP进行网络通信时,通过分层顺序与对方进行通信,发送端从应用层