HTTP服务过程和浏览器缓存

一、1次完整的HTTP的服务过程

当我们在web浏览器的地址栏中输入URL地址发生了什么?

  • 对网址进行DNS域名解析,得到对应的IP地址
  • 根据IP地址,找到对应的服务器,发起TCP的三次握手
  • 建立TCP连接后发起HTTP请求
  • 服务器响应HTTP请求,浏览器得到html代码
  • 浏览器解析html代码,并请求html代码中的资源(js,css,图片,先得到代码再找资源
  • 浏览器对页面进行渲染后呈现给用户
  • 服务器关闭连接

== 注==

  • DNS怎么找到域名?

     DNS域名解析采用“递归查询”方式,先查DNS缓存—>跟域名服务器—>根域名,这样队规查找之后,找到了之后借web浏览器。
    
  • 为什么http协议要基于TCP来实现?

     TCP是一个端到端的可靠的面向连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(发生错误时会重传)
    
  • 浏览器是如何对页面进行渲染的

     	解析html文件构成DOM树
     	解析css文件构成css渲染树
     	边解析边渲染
     	JS单线程运行,可能修改DOM结构,所以js会阻塞后续资源下载
    

HTTP缓存控制(提高并发效率)

http缓存作用范围
浏览器缓存,http缓存能够提高服务器并发性能,不需要重复请求从浏览器直接拿资源。

** http缓存分类**
强缓存和协商缓存

http缓存实现技术

	强缓存:Expires,Cache-Control
	协商缓存:last/modify(有时间精度问题,精确到秒),IEtag/If-None-Match

浏览器缓存分类(强缓存和协商缓存)
- 强缓存:不用发服务器就可以拿到缓存,利用Expires绝对时间(缓存过期时间)或者Cache-Control(相对时间)两个字段来控制,表示资源的缓存时间
-
- 协商缓存:浏览器会发请求到服务器(http返回码:304) 用last/Modify(最后改变时间,第一次请求服务器发送)和If-Modify-Since(第二次浏览器发请求)ETag/If-None-Match——返回一个校验码,如果两者相同,状态码返回304,协商:缓存文件是否更新,没有更新使用缓存,文件更新,服务器发送新的给浏览器 状态码:200

	1.浏览器先根据资源的http头信息来判断是否命中强缓存,如果命中则直接加在缓存中的资源,并不会将请求发送到服务器(强缓存)
	
	2.如果没有命中强缓存,浏览器将资源加载请求发送到服务器,服务器哦安短浏览器本身的缓存是否失效,如果可以使用,则服务器并不会返回资源信息,浏览器继续从缓存加载资源(协商缓存)
	
	3.如果未命中协商缓存,则服务器会将完整的资源返回给浏览器,浏览器加载新资源,并更新缓存。	(新的请求)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值