浏览器

175 阅读2分钟

cookie、sessionStorage、localeStorage

  • 存储方式:

    • cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)

    • cookie数据会在浏览器和服务器间来回传递

    • sessionStoragelocalStorage不会自动把数据发给服务器,仅在本地保存

  • 存储大小:

    • cookie数据大小不能超过4k
    • sessionStoragelocalStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
  • 有期时间:

    • localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据
    • sessionStorage 数据在当前浏览器窗口关闭后自动删除
    • cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

从输入url到页面渲染完成

graph TD
输入URL --> DNS解析域名对应的ip地址 --> 检查浏览器是否有缓存 --> 发起TCP连接 --> 发起http请求 --> 服务器响应并返回数据 --> 浏览器渲染页面 --> 断开连接

强缓存和协商缓存:

  • 当浏览器请求资源时,会先判断本地是否有缓存,如果没有则直接请求服务器。
  • 如果有,就先判断强缓存,根据expires(时间点)和cache-control(相对时间:xxx秒之后失效),如果强缓存未过期,直接读取强缓存。
  • 如果过期了,就去判断协商缓存,服务器会先判断etag/if-none-matched是否一致,一致则返回304,读取本地资源;如果没有etag,那就去对比last-modified和if-modified-since是否一致,一致则返回304读取本地资源,不一致那状态码就为200并且会返回新的资源。
  1. 发起TCP连接

三次握手

  • 第一次握手:客户端发送网络包,服务端接收到了。
  • 第二次握手,服务端发送包,客户端收到了。
  • 第三次握手,客户端发送包,服务端收到了

客户端和服务端双方都能确定对方和自己的收发能力正常

为什么不是两次握手?

如果只有两次握手就能建立连接,那在第二次握手之后如果客户端没有接收到服务端的包,但服务端认为建立了连接,这样服务端会保存必要的资源,造成资源浪费,如果出现大量这样的情况,服务器会崩溃。

TCP和UDP:

(1)tcp:可靠  udp不可靠

(2)tcp面向连接  udp无连接

 (4) tcp一对一  udp一对多,多对一,多对多

(5)tcp传输字节流   udp传输报文

http的特点:

(1)支持c/s模式

(2)灵活:可以传输任意类型的数据对象,传输的类型由content-type标记

(3)无连接:每次只处理一个请求

(4)无状态:如果后续处理需要前面的信息,则必须重传

  1. 服务器处理并响应请求
  2. 浏览器渲染页面
  3. 断开连接