http权威指南第三章

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http权威指南第三章相关的知识,希望对你有一定的参考价值。

参考技术A

重点:

http报文是在http应用程序之间发送的数据块。这些数据块以一些文本形式的元信息(meta-information)开头,这些信息报文描述了报文的内容及含义,后面跟着可选数据部分。这些报文在客户端、服务器和代理之间流动。术语 流入 流出 上游 下游 都是用来描述报文方向的。

http使用流入(inbound)和流出(outbound)来描述事务处理(transation)的方向。客户端发向服务器为流入,服务器发向客户端称为流出。

http会像河水一样流动。不管是请求报文还是响应报文,所有的报文都会向下游(downstream)流动。所有报文发送者都在接受者的上游(upstream)。

http报文是简单的格式化数据块。每条报文都包含三个部分:对报文描述的起始行(start line),包含属性的首部(header)块,以及可选的,包含数据主体(body)部分。

起始行和首部就是由行分隔的ascll文本。每行以回车换行符结束。主体是一个可选的数据块。与起始行不同的是,主体可以包含文本或二进制数据,也可以为空。

所有的http报文可以分为两类:请求报文(request message)和响应报文(response message)请求报文会向web服务器请求一个动作。响应报文会将请求的结果返回给客户端。

请求报文格式

<method><request-url><version>
<headers>

<entity-body>
响应报文格式
<version><status><reason-phrase>
<headers>

<entity-body>

所有的http报文都以一个起始行作为开始。请求报文的起始行说明了要做些什么,响应报文起始行说明发生了什么。

1.请求行
请求报文请求服务器对资源进行一些操作。请求报文的起始行,或者称为请求行,包含了一个方法和一个请求url,这个方法描述了服务器应该执行的操作,url描述了要对那个资源执行这个方法。请求行还包含http版本,在http1.0以前不要求请求行包含http版本号。

2.响应行

响应报文承载了状态信息和操作产生的所有结果数据,将其返回给客户端。响应报文的起始行,或者称为响应行,包含类响应报文的http版本。数字状态码,以及描述操作状态的文本形式的原因短语。

3.方法

请求的起始行以方法作为开始,方法用来告知服务器要做些什么。

4.状态码

状态码用来告诉客户端发生了什么,状态码位于起始行的行中。

5.原因短语

响应起始行的最后一个组件,为状态码提供了一个文本解释。http没有规定原因短语以何种方式出现。

6版本号

版本号说明了应用程序支持的最高版本,但http1.0在解释包含http1.1的响应时,会认为这个响应是个1.1响应。

版本号不会被当做分数处理,而是比较每个数字,http/2.22就比http/2.3高,因为22比3大。

1.首部分类

2.首部延续行

将长的首部分为多行可以提高可读性,多出来的每一行至少要有一个空格或制表符

http报文的第三部分是可选的实体主体部分。实体的主体部分是http报文的负荷,就是http要传输的内容。

http/0.9也由请求和响应组成,但请求中只包含方法和请求url,响应中只包含实体,它没有版本信息,没有状态码或原因短语,也没有首部。

不是每个服务器都实现了所有这些方法,如果一台服务器要与http1.1兼容,只要实现get、head方法就可以了。

http定义了一组被称为安全方法的方法。get和head都被认为是安全的方法,这就意味着使用get或head方法的http请求不会产生什么动作,安全方法不一定什么都不执行的(这将由web开发者决定)

get是最常用的方法。通常用于请求服务器发送某个资源。

head与get方法很相似,但服务器只返回首部。不会返回实体的主体部分。这就允许客户端在未获得实际资源的情况下对资源的首部进行检查。

与get从服务器读取文档相反,普通方法会向服务器写入文档。有些发布系统允许用户创建web页面,并用普通直接安装到服务器上

put方法的语义就是让服务器用请求的主体部分来创建一个由所请求的url命名的新文档,或者如果url已存在,就用主体来替代它

post起初是用来向服务器输入数据的。实际上用它来支持html的表单。

客户端发起一个请求这个请求可能要穿过防火墙、代理、网关或其它一些程序。每个中间结点都有可能修改原始http请求。trace方法允许客户端在最终请求发送给服务器时看看它变成什么样子。

trace请求会在目的服务器发起一个回环诊断。行程最后一站的服务器会弹回一条trace响应,并在响应主体中携带它收到的原始请求报文。

options方法请求web服务器告知其支持的功能。可以查询服务器通常支持那些方法。

delete就是请求服务器删除所请求的资源。但是客户端应用无法保证删除一定会被执行。用为http协议允许服务器在不通知客户端的情况下撤销请求。

http被设计成字段可扩展的,这样新特性就不会使老软件失效了。服务器会为他所管理的资源实现http服务,这些方法为开发者提供了扩展http服务能力的手段。

并不是所有的方法都是正式规范中定义的,如果你定义了一个扩展方法,很可能大部分http应用程序都无法理解。同样你的http应用程序也有可能遇到一些其它应用程序正在使用,而并不理解的方法。

多而杂,不抄了

有些首部提供了与报文相关的基本信息,被称为通用首部。

通用信息性首部

通用缓存首部

http1.0引入了第一个允许http应用缓存对象本地副本的首部,这样就不用总是从源服务器获取了。

请求首部是只在请求报文中有意义的首部。

请求的信息性首部

1.accept首部

accept将客户端的喜好和能力告知服务器的方式

2.条件请求首部

客户端为请求添加限制。

3.安全请求首部

http本身支持一种简单的机制,可以对请求进行质询/响应认证。这种机制要求,在获取资源之前,先对自身进行认证,这样使事务稍微安全一些。

安全请求首部

4.请求代理首部

响应报文有自己的响应首部集。响应首部为客户端提供了一些额外的信息。

1.协商首部

如果资源有多种便是方法,http1.1可以为客户端和服务器提供对资源进行协商的能力

2.安全响应首部

信息性首部

1.内容首部

2.实体缓存首部

通用的缓存首部说明了如何或什么时候进行缓存。实体的缓存提供了与被缓存实体有关的信息。

实体缓存

以上是关于http权威指南第三章的主要内容,如果未能解决你的问题,请参考以下文章

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

《ActionScript3.0权威指南》pdf下载在线阅读,求百度网盘云资源

javascript权威指南学习笔记2

android编程权威指南 第三版 pdf

CUDA C编程权威指南 第三章:CUDA执行模型

《HTTP权威指南》高清中文版pdf