欢迎来到天天文库
浏览记录
ID:30836273
大小:63.50 KB
页数:5页
时间:2019-01-03
《对http协议简单的理解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、对HTTP协议简单的理解主要有两种比较重要的机制,在这里总结一下:一,连接机制;HTTP/1.1支持两种连接机制,一种是非持久连接,第二种是持久连接。基本上默认是使用持久连接,因为这样能够减少建立连接时候的网络延时与CPU消耗。其中服务器与客户端都会假定连接没有关闭,除非对方传來的头文件包含〃Connection:close不然连接将继续保持。客户端,服务器与代理都可以随吋结束连接,而他们也应该有一套机制去重新搭建起连接,并保持正确性。每个客户端也只能与一个服务器保持两条连接。代理也只能保持2N条连接,N为代理的活跃川户数。对于连接的时候,由川户向服务器端发送一个带有〃E
2、xpect"的信息到服务器端,服务器端如果连接正常则返回一个100(continue)的信息到客户端,提示客户端可以继续发送。HTTP对丁•传输道路上的元素也有一定的要求。也规定了不透明代理可以改变哪些字段,而不能改变哪些字段。二.缓存机制;HTTP中使用缓存主要有两个作用,一•个是在很多情况下可以减少发送包,减少网络10,使用“过期”机制来处理;第二个是可以减少发送整包的操作,减少带宽需求,使用“验证”机制来处理。(1)“过期”机制(ExpirationModel),用于服务器端制定一个“过期时间”,主要有两种计算方式,按优先级顺序,笫一种是年龄(Age),笫一种是过期时
3、间(Expiration)o对于第一种,服务器会提供一个年龄字段(Age)与一个有效年龄(max-age),而年龄的计算,则是采用服务器生成时的初始年龄再加上从服务器生成至缓存的时间。如果冇Age这个字段的存在,则说明这个消息不是第一手的,中间有缓存的存在。而要计算一个消息是否过期,则需要采用以下的方法:if(max_age_value)Freshness_lifetime=max_age_value;ElseFreshnesslifetime=expiresvalue一datevalue;Response!s_fresh=(freshness_lifetime>curre
4、nt_age);总休计算方法都比较直观与简单,而如果需要更新缓存的话,则可以加入以卜•字段:Cache-Control:max-age=0;ORCache-Control:no-cache;⑵验证机制(ValidationModel),采用这种机制的时候,缓存先向服务器验证当前的缓存条目是否最新的,则收到304的提示表示NotModified,条目是最新的。否则则会收到服务器返回的新缓存条目。而进行验证的时候,可以使用两个标准,一个是使用服务器在原条目上的"Last-Modified",使用条件GET(If-Modified-SinceORlf-Not-Modified-S
5、ince)去查询。第二个是使用服务器为每个条目纶成的"EntityTag这个Tag如何牛:成完成由服务器去决定,因此也衍生出两种验证策略,一种是强验证,即如果一个条目发生了改变Z后"EntityT年〃也马上变化的,第二种是使用弱验证,即条1=1变化了"EntityTag^仍然保持不变,相对验证条件更弱。而对于是使用强验证还是弱验证则是取决于服务器端了。ThisdocumentlistsallthemessageheadersdefinedintheHTTP/1.1protocol,withshortdescriptions.Int,helist,thenameoftheh
6、eaderisalinktoitsdefinitionintheprotocolitself.NotethatsomeoftheheadersarealsousedinInternetE-mai1andinUsenet;seeQuickreferencetoInternetmessageheaders.Thekindoftheheaderisindicatedasfoilows:[Entity]Metainformationaboutanentitybodyorresource.[General]Applicableforusebothinrequestandinrespo
7、nscmessages・[Request]Sentbyabrowserorotherclicnltoaserver[Response]SentbyaserverinaresponsetoarequestAccept[Request]SpecifieswhichTnternetmediatypesareacceptablefortheresponseandtoassignpreferencestothem.Accept-Charset[Request]Specifieswhichcharacterencodings(
此文档下载收益归作者所有