HTTP

53 阅读4分钟

浏览器的缓存原理 (强缓存以及协商缓存)

基本认知

. Web 服务缓存: ⼤致可以分为:数据库缓存服务器端缓存(代理服务器缓存、CDN 服务器缓存)、浏览器缓存

. 浏览器缓存:也包含很多内容: HTTP 缓存indexDBcookielocalstorage 等等。

HTTP缓存

.HTTP缓存: 优化⻚⾯加载的效率, 如果没有缓存策略, 每次重新加载⻚⾯, 会⾮常慢!

强缓存

强缓存: 检查过期时间, 判断缓存是否失效, 如果不失效, 直接⽤, 不发请求⼤⼤的减少了 服务器的请求次数, 在过期时间内, 直接从客户端内存中读

Cache-Control : 指定⼀个过期时间 (3600s), 这个资源你加载到后, 可以⽤ 3600s

Expires :缓存过期时间,⽤来指定资源到期的时间,是服务器端的具体的时间点。

协商缓存 (强缓存未命中-发送请求进⾏协商)

协商缓存:强缓存命中失效了, 超过过期时间了, 拿着标识(最后的修改时间, 唯⼀标识etag), 去问服务器, 是否真的过期了如果验证通过, 服务器会直接响应 304, 且不会返回资源

Last-Modify:服务器收到If-Modify-Since后,根据实际服务器的资源的最后修改时间, 进⾏判断是否命中缓存。

ETag:可以保证每⼀个资源是唯⼀的,资源变化都会导致ETag变化,ETag值的变更则说明资源状态已经被修改

http缓存流程图:

image.png

http常⻅的状态码有哪些? 以及他们分别表示什么?

成功(2XX

image.png

重定向(3XX)

image.png

因为post请求, 是⾮幂等的, 从302中, 细化出了 303 和 307

简⽽⾔之: 301 302 307 都是重定向304 协商缓存

客户端错误(4XX)

image.png

服务端错误(5XX)

image.png

问到状态码: 304 400 401? 当前端看到控制台报出 400 时, 请问⼀定是后台的问题么? 如何排查错误? (前端先检查传参格式是否有误)

层参考模型

  • 应用层 :支持各种网络应用: FTP、SMTP、HTTP
  • 传输层:进程的数据传输 TCP、UDP
  • 网络层:源主机到目的主机的数据分组路由与转发 IP、ICMP、OSPF协议
  • 数据链路层:把网络层传下来的数据包组装成帧 Ethrnet,PPP
  • 物理层 :比特传输

image.png

计量单位

  • 1bit(位) :1bit
  • 1Byte (字节):1Byte =8bit
  • 1KB=1024Byte=1*210Byte
  • 1M=1024KB =1*220Byte 210 210
  • 1G=1024MB
  • 1T=1024GB

TCP协议是什么?

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。TCP 使用校验、确认和重传机制来保证可靠传输 而 HTTP协议 就是建立在TCP协议之上的一种应用。

一次完整的HTTP服务过程是什么

当我们在web浏览器的地址栏中输入: www.baidu.com ,具体发生了什么?

  1. www.baidu.com 这个网址进行DNS域名解析,得到对应的IP地址
  2. 根据这个IP,找到对应的服务器,发起TCP的三次握手
  3. 建立TCP连接后,发起HTTP请求
  4. 服务器响应HTTP请求,浏览器得到html代码
  5. 浏览器解析html代码,并请求html代码中的资源(如is、CSS、图片等) (先得到html代码,才能去找这些资源)
  6. 浏览器对页面进行渲染呈现给用户 7.服务过程完毕。关闭TCP连接,四次挥手 注:

1.DNS怎么找到域名的? DINS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归香找之后,找到给我们的web浏览哭

hosts

localhost是一个域名, 127.0.0.1为IP地址。 Windows系统中, 约定127.0.0.1为本地IP地址。 localhost是其对应的域名。

Host文件的位置:在XP 、win7系统中,HOST文件位于系统盘C:\Windows\System32\drivers\etc中,如果进去没有看到Hos文件,因为某些系统将Host文件隐藏了。

什么是HOST文件: Hosts是 一个没有扩展名的系统文件,其基本作用就是将一些常用网址域名 与其对应的IP地址建立一个关联数据库",当用户在浏览器中输入一个 需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再 会将网址提交DNS域名解析服务器进行IP地址的解析,如果发现是被屏蔽的IP或域名,就会禁止打开此网页!