Web Caching
Web Cache
,aka proxy server
,network
用于代替Origin Web server
满足HTTP request
的机制,web cache拥有自己的storage空间,并会把最近收到请求的objects存在storage,user browser可以透过config让所有的request都先被转到web cache里。
假使今天client端发送出一个request,一样会建立一条TCP connection至web cache,接着web cache检查是否有一份备分的object在储存空间里,若有的话,web cache直接代替server送回response,若无的话则送出request建立TCP connection至 origin server,取得response后在自己的storage 备份object,接着再送回clicent side。
web cache 同时是client & server
,web cache主要应用有两个原因,一者为减少response time for client request
尤其当client to server 的频宽小于 client to web cache时候,二者为减少traffic
,若request并无真的发至origin server 可以减轻server的负担并减少access to internet的traffic,因此可以对此设计提升效能。
The Conditional GET
上述提到Web cache的好处,但也有一个隐忧是,假使 origin server的档案在web cache储存后有所更动的话,该怎么处理,HTTP提供一个机制让web cache可以去确认 object是否为up to date,这机制称为Condition GET
,符合conditional GET
的条件为
IF-modified-since
记得在response message
有着一笔Last-Modified
的纪录,而当web cache再次收到request时,web cache会触发up-to-date check
发出一笔condition GET
夹带If-modified-since
,若web server判断无modified的话,则会回传response without requested object
,并在status line带着status code 304 not modified