(3)304协商缓存

304协商缓存开始吧。这是比较基础的知识。相信我,只要你提起304协商缓存,面试官一定会忍不住问你,什么是协商缓存?

这时就到了你展示一下自己丰富的浏览器缓存知识的时候了。我一般会这么答:浏览器缓存分为强制缓存和协商缓存,优先读取强制缓存。

强缓存是利用http头中的ExpiresCache-Control两个字段来控制的,用来表示资源的缓存时间。而expires是一个GMT格式的绝对时间,是比较旧的标准,cache-control通常是一个具体的时间长度,比较新,优先级也比较高。

而协商缓存包括etag和last-modified,last-modified的设置标准是资源的上次修改时间,而etag是为了应对资源修改时间可能很频繁的情况出现的,是基于资源的内容计算出来的值,因此优先级也较高。

协商缓存与强制缓存的区别在于强制缓存不需要访问服务器,返回结果是200,协商缓存需要访问服务器,命中协商缓存的话,返回结果是304。

7.Https与Http区别

       1、https协议需要申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议。

  3、http和https端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由HTTP+SSL协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

http协议比较简单,也是不安全的。端口号是80;三次握手结束之后便可以传输数据,http1.0是短连接,每次都要关闭连接,http 1.0是长连接,超时服务端关闭连接。由于http是明文传输,如果加密也只能在应用层上面加密。

https则是安全的,过程也比http要复杂一些。端口号:443;但简单来说,https只是http+ssl/tls(安全套接字层)而已。加密在ssl层进行,位于应用层与传输层之间,如果一定要归入应用层或者传输层的话,个人感觉应该算是传输层吧。之后再从ssl交给tcp加密后的数据。

计算机网络部分

https的基本流程

  • 与服务端443端口建立TCP连接
  • 请求服务端的数字证书
  • 验证数字证书(数字签名验证,rsa+hash)
  • 双方ssl初始化,进行一次ssl握手提供**确认对称对称**(rsa加密)
  • 报文交付ssl层加密(aes+hash+rsa)
  • 交付TCP传输数据
  • 关闭ssl
  • 关闭TCP

https加密是在ssl层进行的,因此应用层是透明的,在应用层对明文处理没有意义

数字证书

数字证书由CA机构颁发,一般记录了证书颁发机构、对象名称、日期、公钥、哈希算法等

浏览器都会预装有权威CA机构的信息,以便利用数字签名验证CA机构颁发的数字证书,如果证书无法验证,需要让用户手动信任。

计算机网络部分

相关文章: