输入地址,到页面显示,经历了什么(包括浏览器缓存)
1、输入网址
2、DNS解析,游览器查找域名的IP地址
3、建立TCP链接
4、
向WEB服务器发起Http请求,
浏览器根据缓存机制看url链接有没有命中缓存,如果命中缓存,查看浏览器缓存文件记录的缓存类型:强缓存、协商缓存(
浏览器对于缓存的处理是根据第一次请求资源时返回的响应头来确定的。
那么浏览器怎么确定一个资源该不该缓存,如何去缓存呢❓响应头!响应头!响应头!重要的事情说三遍,
在浏览器第一次请求某一个URL时,服务器端的返回状态码会是200,响应的实体内容是客户端请求的资源,同时有一个Last-Modified
的属性标记此文件在服务器端最后被修改的时间,当浏览器第二次请求这个URL的时候,根据HTTP协议规定,浏览器会把第一次Last-Modified
的值存储在If-Modified-Since
里面发送给服务端来验证资源有没有修改。like this:
If-Modified-Since : Fri , 12 May 2006 18:53:33 GMT
服务端通过If-Modified-Since
字段来判断在这两次访问期间资源有没有被修改过,从而决定是否返回完整的资源。如果有修改正常返回资源,状态码200,如果没有修改只返回响应头,状态码304,告知浏览器资源的本地缓存还可用。
),比如Last-Midified协商缓存,当浏览器再次试图访问这个CSS文件,命中缓存,根据HTTP协议规定,浏览器会把第一次Last-Modified
的值存储在请求头的If-Modified-Since
里面发送给服务端来验证资源有没有修改。like this:
If-Modified-Since : Fri , 12 May 2006 18:53:33 GMT
服务端通过If-Modified-Since
字段来判断在这两次访问期间资源有没有被修改过,从而决定是否返回完整的资源。如果有修改正常返回资源,状态码200,如果没有修改只返回响应头,状态码304,告知浏览器资源的本地缓存还可用。
5、服务器端处理
服务器端收到请求后的由web服务器(准确说应该是http服务器)处理请求,诸如Apache、Ngnix、IIS等。web服务器解析用户请求,知道了需要调度哪些资源文件,再通过相应的这些资源文件处理用户请求和参数,并调用数据库信息,最后将结果通过web服务器返回给浏览器客户端。