前端HTTP相关面试总结

数据库缓存

将查询的表放入内存中存储,需要再次查找的时候直接从内存中获取(redis)

CDN缓存

通过CDN访问内容最近最快的路劲,网站管理员部署,将常用的内容放入CDN节点

代理服务缓存

第三方边缘服务器优化缓存

浏览器缓存

  1. 强缓存

    关键词

    • expires

      • HTTP 1.0 字段
      • 到其时间,根据判断是否到期作为强缓存时间依据
      • 因为获取的是本地时间,所以修改本地时间可改变缓存时间
    • cache-control

      • disk cache 本地缓存
        • 图片,等大文件一般缓存到本地硬盘中
      • memory cache 内存缓存
        • 数据类存入到计算机内存
      • 两种缓存方式有浏览器自动调配
    • pragma

  2. 协商缓存

为什么有HTTPS 协议

  1. HTTPS 是基于HTTP 2.0协议上增加了一个TLS 加密协议
  2. HTTP 传输协议是明文传输的,为了防止再传输过程中,被中间劫持谷歌增加了非对称加密
  3. HTTPS 会增加了握手的时长
  4. HTTPS 交互过程 ... 后期补全

HTTP code 码标识

  1. 1xx 表示协议处理中间状态,还需要后期处理
  2. 2xx 表示成功状态
  3. 3xx 表示重定向,资源位置发生改变需要重新请求
  4. 4xx 表示请求报文有误
  5. 5xx 表示服务端发生错误

TCP 三次握手

  1. 第一次握手,客户端向服务端发送SYN包(seq=j),此时客户端进入SYN-SENT
  2. 第二次握手,服务端收到客户端的SYN包并对SYN包加1(seq=j+1),并发送SYN+ACK(seq=k),服务端进入SYN-RECV状态
  3. 第三次握手,客户端收到服务端的SYN+ACK包,发送ACK(seq=k+1),发送完成后并与服务器建立连接。

注释:[^SYN 同步字符] [^ACK 确认字符]

百度百科:

第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ACK包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。 

TCP 四次挥手

  1. 第一次挥手,客户端向服务器发送fin标志位报文,并告诉服务端要断开连接,客户端状态由established变为fin-wait-1
  2. 第二次挥手,服务到收到客户端fin报文,并发送ACK报文,告诉客户端要关闭的连接,服务端从established变成close_wait,,客户端收到ACK报文,状态变为fin-wait-2
  3. 第三次挥手,服务端应用可以关闭连接,并向客户端发送fin 报文,服务端用close-wait编程last-wait
  4. 客户端收到find报文,回复ACK报文,客户端状态从fin-wait-2变为time-wait,服务端收到ACK报文后直接关闭,将状态变为close
百度百科

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

第一次挥手:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
第二次挥手:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
第三次挥手:服务器关闭客户端的连接,发送一个FIN给客户端。
第四次挥手:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
function showNavigationDetails() {
  const [entry] = performance.getEntriesByType("navigation");
  console.table(entry.toJSON());
}
showNavigationDetails(); //查看各个地方的相应事件

//关于我们的Web性能,我们会用到的时间参数:
//DNS解析时间: domainLookupEnd - domainLookupStart
//TCP建立连接时间: connectEnd - connectStart
//白屏时间: responseStart - navigationStart
//dom渲染完成时间: domContentLoadedEventEnd - navigationStart
//页面onload时间: loadEventEnd - navigationStart

HTTP 1.1 与 HTTP 2.0 有什么提升

  1. 头部压缩
  2. 多路复用
  3. 持久化链接
  4. 增加cache-control
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容