昨天工作时候在请求服务器时间时候遇到一个请求缓存问题。就这个问题细究的话 应该是一篇关于http缓存的讲解,不过在讲解缓存之前,还是要巩固一下http请求,
特整理如下:虽然不是特别细致,还是挺实用的,希望对大家日后有所帮助。如有见解,欢迎指教。关于缓存见下章http前端缓存详解
什么是http协议:
引用百度百科的话说来就是:http协议其实就是超文本传输协议,超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,
通过因特网传送万维网文档的数据传送协议。目前我们使用的http版本是http/1.1其前身是http/1.0。关于两个版本不同,下面会不时提及。在整个iso传输层次模型中http处于最高层次,而tcp是处于下面一层传输层,
也就是说http是基于tcp协议建立的连接,所以http传输建立之前需要先建立tcp连接,也就是三次握手,在建立tcp连接之后方可真正请求响应请求。
http传输过程详解:
当我们发送一个ajax请求,或者地址栏输入url后,我们的浏览器就给web服务器发送一个request,之后服务器处理完成后返回响应的response给浏览器。之后浏览器拿到数据进行解析里面数据从而生成我们页面或者组装数据。
期间传输还有可能经历了代理服务器(目前很多很多网站都用代理服务器,主要原因是其隐蔽。。)从而实现服务器端文件缓存。
http传输是面向连接的,也就是说如果连接没有中断,可以继续发送请求,这个设置可以在请求头Connection来设置,例如:我通过一个url请求了一个html页面之后,
经解析,html页面中包含对图片的请求,则会直接再向服务器发起请求而不必重新建立tcp连接。等到所有请求都就绪,方可完成一次页面加载或者请求完毕。
url详解:
无论是ajax请求还是地址栏输入url,都要用到请求地址,请求地址用来描述需要请求的资源位置以及筛选方式:大体结构如下
http://www.temas.com/myBlog/file/date.php?name=yuchao&age=26#modfiled
这个url分为几个部分:
http:表示底层使用的协议(如http、https、ftp)