http

《HTTP权威指南》每章的知识点总结

View the Project on GitHub lvzhenbang/http

内容提要

相关术语

内容协商技术

1、客户端驱动实现方式:客户端发起请求,服务器返回资源可用版本的列表,这种方式实现起来简单,但同时有个问题就是至少需要发送两次请求才能得到自己喜欢的响应(第一次获取列表,第二次才是得到资源),显然会造成时延、浪费带宽。

2、服务器驱动实现方式:这种方式由服务器通过检测客户端发送过来的内容协商首部来主动决定发送相应版本的资源,涉及到著名q值检测技术。这种方式的问题就是,如果客户端的发送过来的相关首部不明确的话,那么就得服务器自己去判断了。

3、透明方式(代理缓存处理):让代理代替客户端与服务器端进行协商,从而减轻了服务器端的请求压力。

客户端驱动的协商

服务器驱动的协商

1、Accept首部集

2、User-Agent

内容协商首部集

	
	Accept            告知服务器发送何种媒体类型

	Accept-Language   告知服务器发送何种语言

	Accept-Charset    告知服务器发送何种字符集

	Accept-Encoding   告知服务器采用何种编码


				——————————————————————————————————————————
				*Accept首部*  				*实体首部* 
				——————————————————————————————————————————
				Accept  					Content-Type 
				Accept-Language 			Content-Language 
				Accept-Charset  			Content-Type 
				Accept-Encoding  			Content-Encoding 

内容协商首部中的质量值

	Accept-Language: en;q=0.5, fr;q=0.0, nl;q=1.0, tr;q=0.0

其中q值的范围从0.0~1.0(0.0是优先级最低的,而1.0是优先级最高的)。上面列出的那个首部,说明该客户端最愿意接收荷兰语(缩写为nl)文档,但英语(缩写为en)文档也行;无论如何,这个客户端都不愿意收到法语(缩写为fr)或土耳其语(缩写为tr)的版本。注意,偏好的排列顺序并不重要,只有与偏好相关的q值才是重要的。如果上面的列表中,服务器没有找到自己匹配的文档,那么服务器将会采取转码等修改文档方式来实现响应。

随其它首部集而变化

透明协商

转码

1、格式转换是指将数据从一种格式转换成另一种格式,使之可以被客户端查看。

2、信息综合是从文档中提取关键的信息片段称为信息综合。

3、前面描述的两类转码通常会减少Web文档的内容,但还有另一类转换会增加文档的内容,即内容注入转码。

此外,转码的替代做法是在web服务器上建立Web页面的不同副本,例如一个是HTML;一个是WML。但这种方式操作起来工程量大,一个小小的改动,所有的相关的页面都要更改,加大了存储空间等。