资讯动态

HTTP/HTTPS核心知识与面试高频考点全解析

发布时间:2026/8/29 15:36:50 来源:尧图企业网站定制
最近在牛客刷面经的时候发现HTTP/HTTPS几乎是被翻牌率最高的基础题。不管是面后端、客户端、测开还是运维面试官都喜欢从“输入一个URL到页面展示发生了什么”入手一路问到TCP、TLS、状态码、缓存、HTTP版本甚至线上问题排查。很多人状态码背得滚瓜烂熟可一被追问“502和504到底有什么本质区别”“为什么HTTPS握手需要三个随机数”就卡住了。这篇东西我想按自己复习时的理解把牛客面经里出现频率最高的HTTP/HTTPS知识点重新梳理一遍不光是给结论更把背后的逻辑讲透。内容也适合校招和社招的候选人按这个框架准备基本能覆盖面试官八成以上的追问方向。1. HTTP基础面试必问的底层概念1.1 HTTP到底是什么和TCP/IP有什么关系HTTP全称是超文本传输协议但只会背这个全称没什么用。面试官真正想听的是你对协议分层的理解。HTTP跑在TCP之上是一个应用层协议它只负责定义“客户端和服务器之间交流的格式”至于数据怎么可靠地从一个机器到另一个机器那是TCP的事情。常见的一个面试表述是HTTP用TCP作为传输层是因为HTTP需要可靠传输请求发出去之后必须知道服务器到底收到没有TCP的三次握手、确认重传、流量控制、拥塞控制恰好能保证这一点。我习惯把四层模型比作寄快递HTTP是快递包裹里那张手写的单据格式规定了收件人、地址、物品名称怎么填TCP是快递公司的干线运输保证包裹不会丢、破损了会重发IP是门牌号系统负责把包裹送到正确的城市和街道链路层则是实际开车的公路和加油站。这样一套类比在面试里很加分既显得你理解分层又不会干巴巴地背“物理层、数据链路层、网络层、传输层”。这里还要强调一下HTTP是经典的“请求-响应”模型只有客户端能主动发起请求服务器只能被动响应。很多人会问“那服务器能不能主动推送数据给客户端”答案是不行即使是WebSocket也是先由客户端发起升级请求之后才建立全双工通道。理解这一点对后面理解HTTP/2的Server Push为什么不被看好也有帮助。HTTP还有一个重要特性就是无状态。无状态的意思是服务器默认不记得任何一个请求是不是同一个用户发来的每个请求都是独立的。登录功能之所以能实现全靠后来引入Cookie、Session、Token这些机制去“模拟”状态而不是HTTP本身变了。这个点面试官经常顺着追问我会在后面专门展开。1.2 报文结构请求行、请求头、空行、请求体报文结构是送分题但很多面试者答不完整。一个HTTP请求报文由四部分组成请求行Request Line、请求头Headers、空行CRLF、请求体Body。请求行里面包含三样东西请求方法、URL、协议版本比如GET /index.html HTTP/1.1。响应报文的结构类似只是第一行变成了状态行由协议版本、状态码、状态描述组成比如HTTP/1.1 200 OK。请求头里常见的字段需要能够说出作用HostHTTP/1.1之后必须携带用来告诉服务器要访问哪个域名是虚拟主机的基础Content-Type表示请求体或响应体的媒体类型比如application/json、text/htmlContent-Length表示body的字节长度接收方靠它判断body读多少就结束Connection管理连接keep-alive表示持久连接close表示响应后关闭Cookie携带之前的会话标识让服务器识别用户。面试官喜欢问“为什么头部结束需要一个空行”。因为HTTP头部是纯文本解析器无法天然知道头部到哪里结束空行就是唯一的边界标志。看到空行解析器就知道头部结束后面的字节全是body。这个细节看似简单但实际解析HTTP请求的时候非常关键。我自己在写简单的HTTP解析器时就是靠找\r\n\r\n来切分头部和body的忘了处理这个空行会导致解析错乱。响应头里还经常看到Set-Cookie服务器通过这个字段让浏览器种下Cookie。还有Cache-Control、ETag、Last-Modified这些缓存相关字段缓存机制我会在HTTP版本演进那一节统一讲。1.3 请求方法与幂等性HTTP请求方法常考的是GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH。其中GET和POST的区别是八股之王。这个问题可以从语义和实现两个层面回答。语义上GET用于查询资源POST用于提交或创建资源GET参数放在URL的query string里POST参数放在body里GET会被浏览器主动缓存POST不会GET在浏览器里可以被收藏为书签POST不行。实现层面GET请求通常没有bodyPOST有body。但要注意这不是HTTP协议强制约束的只是大家的约定。实际上用GET带body、POST不带body也能跑很多后端框架甚至不区分。幂等性是一个很容易被追问的概念。幂等的意思是一个请求执行一次和执行多次对服务器资源产生的效果一样。GET、PUT、DELETE、HEAD是幂等的POST不幂等PATCH要结合实现看。为什么需要幂等因为在网络不可靠的环境下客户端超时后会重试如果重试一个非幂等操作就可能产生重复下单、重复扣款。所以支付回调、消息重试这些场景特别强调幂等性设计。我面过一家公司面试官直接问“如果让你设计一个支付接口你会用POST还是PUT”他想听的就是你对幂等性的理解。HEAD和GET类似但服务器只返回响应头和状态码不返回body通常用来探测资源是否存在、检查链接是否有效。OPTIONS用于获取服务器支持的请求方法在跨域请求的预检preflight里很常见。1.4 状态码不只是背数字状态码是背了最多、也被问得最细的一块。按类分1xx信息响应101 Switching Protocols是WebSocket升级的关键2xx成功200 OK、201 Created、204 No Content3xx重定向301永久、302临时、304 Not Modified4xx客户端错误400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、405 Method Not Allowed、408 Request Timeout、429 Too Many Requests5xx服务端错误500 Internal Server Error、502 Bad Gateway、503 Service Unavailable、504 Gateway Timeout。常见的辨析题301和302301是永久重定向浏览器会缓存新地址下次直接访问新地址302是临时重定向每次仍先访问旧地址再跳转。SEO场景下换域名用301活动跳转用302。401和403401是“没认证”说明你根本没告诉我你是谁403是“认证了但没权限”说明服务器认识你但你不允许访问这个资源。502和504这两个在热词里都出现了确实也是线上最常遇到的状态码。502 Bad Gateway表示网关或中间转发节点收到了上游服务的无效响应最常见的是后端进程挂了、端口不通、返回了非法响应。504 Gateway Timeout表示网关在等待上游响应时超时了说明后端服务还在但处理太久或已经假死。一句话概括502是“上游给了一个坏响应”504是“上游迟迟没给响应”。499这个比较特别是Nginx自定义状态码表示客户端在服务器还没有返回响应时就主动断开了连接。长耗时接口经常出现499可能是因为用户等不及关掉了页面也可能是超时配置太短。我在实际抓包和排查中最大的感受是状态码只是线索不能当结论。比如看到504第一步不是去调代码而是确认网关的超时配置和后端接口的实际耗时把两边的日志时间对齐才能定位到瓶颈。1.5 Cookie、Session、Token无状态HTTP如何实现登录HTTP是无状态的但业务需要状态于是Cookie、Session、Token就出现了。它们三个的关系是面试高频。Cookie是浏览器本地存储的一小段键值对由服务器通过Set-Cookie响应头下发之后浏览器在访问同一域名时会自动通过Cookie请求头带上去。Cookie有几个关键属性需要能说清楚HttpOnly设置为HttpOnly后JavaScript无法通过document.cookie读取该Cookie可以防止XSS攻击窃取会话Secure只在HTTPS连接下传输防止明文网络中被抓取SameSite用于限制跨站请求是否携带Cookie是防范CSRF的重要手段SameSiteLax是现在浏览器的默认策略。Session是服务端概念。用户登录后服务器为这个用户创建一份会话数据并生成一个唯一的sessionId通过Cookie下发给浏览器。浏览器后续请求带上sessionId服务器据此找到对应的会话数据。这种方式的问题在于服务器需要保存会话状态在分布式部署时需要session共享否则用户请求被负载均衡到另一台机器就找不到session了。Token则是另一种思路服务端不保存状态。最典型的是JWT登录成功后服务器签发一个包含用户信息和过期时间的签名令牌客户端保存起来后续请求放在Authorization头里。服务器收到后验签、解出用户信息不需要查库。JWT的好处是天然支持无状态、横向扩展方便坏处是一旦签发在过期前很难主动吊销所以黑名单、白名单这些补偿机制也要会讲。我自己的经验是面试时不要只背定义最好结合自己项目里的登录方案讲出选型理由。比如“我们当时的项目是前后端分离接口可能被App和网页同时调用所以选了Token方案但管理后台由于需要严格管控会话用了Session”。这种带着场景的回答远比单纯背概念打动人。2. HTTPS原理从握手到加密2.1 为什么HTTP不够安全HTTPS到底解决什么HTTP最大的问题就是明文传输。明文意味着任何链路上的节点都能看到完整的请求和响应内容包括URL里的参数、Cookie、表单数据。随便在同一个Wi-Fi下抓个包就能看到别人正在浏览的网页内容这是非常恐怖的。另外明文传输还意味着中间人可以篡改数据把响应里的内容改掉甚至假装自己是服务器这就是中间人攻击。HTTPS要解决的就是三个问题机密性防止窃听、完整性防止篡改、身份验证防止伪装。实现手段是TLS/SSL协议叠加在HTTP和TCP之间。理论上HTTP加密就是HTTPS面试官一旦问“HTTPS为什么安全”你不能只回答“加密了”要能说出加密的具体架构。加密算法分两类对称加密和非对称加密。对称加密用同一个密钥加解密速度快适合加密大量数据但问题是这个密钥怎么安全地传给对方非对称加密有一对公私钥公钥加密的内容只能用私钥解密私钥加密的内容只能用公钥解密解决了密钥分发问题但性能差很多。HTTPS的核心思路就是混合加密先用非对称加密安全地协商出一个对称密钥之后所有的业务数据都走对称加密。这样既解决了密钥分发的难题又保证了传输效率。2.2 TLS握手流程为什么需要三个随机数TLS握手是整个HTTPS最核心的面试点。以TLS 1.2为例完整流程大致是客户端发起Client Hello携带一个客户端随机数client random、支持的TLS版本、加密套件列表服务器返回Server Hello选择双方都支持的加密套件带上服务器随机数server random和数字证书客户端验证服务器证书的合法性然后生成一个预主密钥pre-master secret用服务器证书里的公钥加密后发送给服务器服务器用私钥解密得到预主密钥至此双方都拥有了client random、server random、pre-master secret三个素材各自用相同的算法计算出会话密钥session key后续的数据都用这个会话密钥进行对称加密双方发送Finished消息确认握手完成。面试官常问的三个为什么为什么客户端和服务器的随机数都要公开因为即使随机数被中间人看到也没关系最终的会话密钥还包含只有客户端和服务器才知道的预主密钥。加入随机数是为了防止每次会话的密钥完全相同增加不可预测性。为什么预主密钥必须用证书公钥加密这是整个握手的信任基石。如果预主密钥明文传递中间人一把抓走后续的加密全部白费。用公钥加密后只有持有对应私钥的服务器能解开这样预主密钥就只有客户端和真正的服务器知道。为什么说HTTPS能防中间人核心在于证书验证。客户端不是傻乎乎地拿证书公钥加密而是先检查证书是否可信。如果中间人想伪造证书他需要被客户端信任的CA为其签发证书否则浏览器直接报警。TLS 1.3相比1.2最大变化有两点一是精简握手流程常见场景下只需要一个RTT就能完成握手二是废弃了RSA密钥交换只支持前向保密的ECDHE等算法。所谓前向保密就是即使服务器私钥泄露历史会话密钥也不会被反推出来因为每次会话使用临时生成的密钥对参与协商。2.3 数字证书与CA信任链数字证书在HTTPS里承担的是“身份证明”的角色。证书里最重要的内容有域名、服务器公钥、证书有效期、签发者信息以及CA对以上内容的数字签名。验证证书的过程本质上是一个信任链传递的过程。操作系统或浏览器内置了一批根证书这些根证书代表“根CA”。服务器拿到的证书一般是由中间CA签发的中间CA的证书又由根CA签发。客户端验证时从服务器证书出发逐级向上找签发者直到找到自己信任的根证书再用根证书的公钥验证下一级证书的签名一级一级验证下去最后用服务器证书里的公钥加密预主密钥。这里有一个很容易被追问的点如果证书过期了、域名不匹配、或者证书链不完整浏览器会怎样会中断握手并给出警告页面。这就是为什么我们经常能看到“您的连接不是私密连接”的提示。自签名证书也能完成加密但它不在信任链上浏览器同样不认。所以在开发环境里可以临时信任自签名证书或使用-k参数跳过校验但生产环境绝对不能这么干。关于证书还有一个面试常考点HTTPS证书是谁校验的答案是客户端也就是浏览器或操作系统。服务器不需要校验客户端证书除非是mTLS双向认证。所以只要客户端不信任证书握手就失败。2.4 HTTPS的性能开销与优化手段很多人只知道HTTPS比HTTP慢但说不清慢在哪。慢的原因主要有两个一是握手多出几个RTTTLS 1.2完整握手需要2个RTTTLS 1.3减少到1个RTTHTTP/2配合TLS还要另算二是加密解密要消耗CPU资源尤其在高并发场景下非对称加密和大量对称加密都会拉高CPU使用率。优化手段我实际用过的有几个会话复用TLS握手之后服务器可以下发一个session ticket给客户端客户端下次连接时直接带上服务器验证通过后就可以跳过完整的握手过程。在短连接场景例如App频繁请求接口时这个优化非常明显能让整体响应时间下降不少。TLS 1.3部署TLS 1.3之后不仅握手少了一个RTT还天然支持0-RTT恢复虽然0-RTT有一定重放风险但在幂等接口上收益很大。OCSP Stapling浏览器在验证证书时需要查询OCSP服务确认证书没有被吊销这个查询很慢。OCSP Stapling让服务器主动把OCSP查询结果缓存在TLS握手时发给客户端省掉客户端的在线查询。HSTS通过响应头让浏览器强制使用HTTPS访问避免302跳转带来的额外请求和中间人降级攻击。我自己踩过的一个坑是只开启了HTTPS但没有配置会话复用导致每个新连接都要跑完整握手压测时QPS上不去CPU还特别高。后来打开session ticket复用同样配置下QPS几乎翻倍。所以讲到HTTPS优化时把会话复用放在第一位讲是合理的。3. HTTP版本演进与连接管理3.1 HTTP/1.0到HTTP/1.1持久连接和Host头HTTP/1.0时代每次请求都要建立一个新的TCP连接请求完成后连接关闭。这个设计在网页只有一张图片、一段文字时没什么问题但网页资源一多就非常浪费。TCP连接的三次握手和四次挥手的开销远大于真正传输数据的开销。HTTP/1.1做了几个重要改进默认开启持久连接响应头里带Connection: keep-alive同一个TCP连接可以连续发送多个请求和响应减少了频繁建连的开销。同时HTTP/1.1引入了Host头允许一台物理服务器上通过不同域名提供多个网站这就催生了虚拟主机。还有一点就是支持断点续传通过Range头实现部分资源的请求。但HTTP/1.1有一个很著名的缺陷队头阻塞。因为在一个持久连接上请求和响应是串行处理的前一个请求的响应没有完全返回后面的请求就只能排队等待。浏览器为了缓解这个问题会对同一个域名开多个TCP连接一般限制在6个左右。注意只是缓解并没有解决。HTTP/1.1当年也设计过管道化Pipelining允许客户端一次性连续发送多个请求但要求服务器必须按请求顺序返回响应所以队头阻塞依然存在而且兼容性问题很多最终没有被广泛使用。这里面试官经常坑人问“HTTP/1.1时代为什么打开一个网页需要多张图片时浏览器会开多条连接”你要回答因为队头阻塞是应用层的串行问题浏览器通过并行连接来近似并行加载。但这会带来连接数过多、服务器压力增大等问题所以HTTP/2才要搞多路复用把连接数压回一个。3.2 HTTP/2二进制分帧、多路复用和头部压缩HTTP/2的核心目标是解决HTTP/1.1的队头阻塞和连接利用率低的问题。它引入了几个关键概念二进制分帧HTTP/1.x是纯文本协议HTTP/2把数据切分成一个个二进制的帧帧是HTTP/2数据传输的最小单位。流和多路复用每个请求响应被称为一个流多个流可以在同一条TCP连接上交错传输帧可以乱序到达最后由流ID重组。这样应用层的队头阻塞就被解决了一条连接上可以同时跑几十个请求。头部压缩HTTP头部有很多重复字段HTTP/2使用HPACK算法用静态表和动态表对头部进行压缩。实测页面请求的头部体积可以下降一半以上。Server Push服务器可以在客户端没有请求的情况下主动推送资源比如HTML里引用的CSS、JS。设计初衷很好但实际使用容易造成资源浪费后面Chrome也移除了对Server Push的支持现在面试提一句“已经被边缘化”即可。需要特别注意一个细节HTTP/2解决了应用层的队头阻塞但TCP层的队头阻塞依然存在。因为TCP为了保证数据有序如果某个包丢了接收方会等待重传后续到达的包即使没问题也只能待在缓冲区里导致所有流都被阻塞。这个问题的根源是TCP的有序性保障所以最后才催生了HTTP/3。3.3 HTTP/3与QUIC为什么最终要换掉TCPHTTP/3最大的变化是把传输层从TCP换成了基于UDP的QUIC协议在用户态实现了可靠传输。为什么这么折腾核心就是为了解决TCP队头阻塞和连接建立的延迟。QUIC有几大特性一是基于UDP实现可靠传输自己管理重传和排序丢包只影响对应的流不会阻塞其他流二是握手更快TLS 1.3内置在QUIC里首次连接1-RTT恢复连接可以0-RTT三是连接迁移因为QUIC用连接ID而不是IP:端口来标识连接手机从Wi-Fi切到4G时连接不会断开。面试时能讲到这三条基本就能证明你确实看过HTTP/3而不是背标题。不过说实话HTTP/3在现实生产环境里还没有大面积铺开很多CDN和网关也只是部分支持。面试中问到HTTP/3不需要编造“我们线上已经用了XX”这种话老老实实说“我了解它的原理但生产环境用得还不多”反而更可信。3.4 缓存机制强缓存与协商缓存缓存机制是前端和后端面试共同的常客。HTTP缓存分为两类强缓存和协商缓存。强缓存是浏览器直接使用本地副本不发请求到服务器。相关字段是Cache-Control的max-age以及老旧的Expires。max-age3600表示一小时内直接用缓存。Expires是一个绝对时间容易被客户端本地时间影响所以现在都被Cache-Control替代。强缓存命中时浏览器开发者工具里看到的请求状态是200 (from disk cache)或200 (from memory cache)。协商缓存是强缓存失效后浏览器带着缓存标识去问服务器这个资源到底变了没有服务器返回304 Not Modified就继续用本地缓存返回200就返回新资源并更新缓存标识。相关字段有两组Last-Modified配If-Modified-Since基于文件最后修改时间ETag配If-None-Match基于文件内容生成的一段唯一标识。面试官爱问有了Last-Modified为什么还要ETag因为Last-Modified只能精确到秒同一秒内文件被修改两次它识别不出来而且有些文件被周期性重写内容没变修改时间也会变造成不必要的重新下载。所以ETag更精确。但ETag的计算也需要成本所以现实里往往会两者并存。这里还要注意一个容易混淆的点缓存是有优先级的。Cache-Control的优先级高于ExpiresETag的优先级高于Last-Modified。顺序上是先判断强缓存强缓存没过期就直接返回强缓存过期了再走协商缓存服务器返回304或200。4. 面试实操经典问题与排查经验4.1 一个URL从输入到页面展示怎么把整个链路讲顺“从输入URL到页面展示”这道题是HTTP面试的总纲答好这一题等于把前面所有知识串了一遍。我建议分六个阶段去讲URL解析浏览器先判断输入的是URL还是搜索词如果是URL就解析出协议、域名、端口、路径。默认端口HTTP是80HTTPS是443。DNS解析解析域名对应的IP地址。顺序是浏览器缓存、操作系统缓存、hosts文件、本地DNS服务器、根DNS服务器逐级迭代递归。DNS本身也是基于UDP的DNS over HTTPS这里可以提一嘴但不用展开。TCP连接拿到IP后客户端与服务器建立TCP连接三次握手。现代浏览器会复用已有连接不一定每次新建。TLS握手如果是HTTPSTCP建立后还要做TLS握手协商会话密钥然后是加密通信。发送HTTP请求浏览器构造请求报文通过TCP连接发送。服务器处理请求后返回响应涉及状态码、响应头、缓存判断等。浏览器解析渲染拿到HTML后解析DOM树、CSSOM树加载子资源图片、JS、CSS执行JavaScript最终绘制页面。HTTP/2下子资源会通过多路复用在同一条连接上并行加载。这个过程中面试官会随时打断追问。比如“三次握手发生在什么时候”“如果DNS解析超时怎么办”“为什么刷新页面时有些资源返回304”。所以不要一口气背完要把每个环节的关键词都准备好等他追问追问本身就是你展示深度的机会。4.2 高频自测清单这些题你能不能脱口而出我整理了一份自测清单都是我刷牛客面经时反复出现的问题。建议你按清单逐条自测答不上来的回去翻前面内容GET和POST的区别是什么什么时候用POST为什么说HTTP是无状态协议Cookie、Session、Token分别做了什么Cookie的HttpOnly、Secure、SameSite属性分别解决什么问题301和302、401和403、502和504有什么区别HTTP/1.1的队头阻塞是怎么产生的HTTP/2真的解决了吗HTTPS握手过程是什么为什么要用混合加密请说一下从输入URL到页面展示的完整过程。强缓存和协商缓存分别是怎么工作的ETag和Last-Modified有什么区别为什么说HTTP/3要基于UDP实现可靠传输线上接口突然出现大量499怎么排查这些问题不需要背标准答案关键是能用自己的话讲清楚原理。面试官大多数时候不是考记忆力而是考你有没有真正理解。4.3 线上HTTP错误排查从状态码看问题状态码是线上问题排查的第一信号。最近我就遇到一次502 Bad Gateway现象是某个接口在高峰期随机性报错用户端看到白屏。排查过程大概是先看入口网关的日志确认返回502的请求集中在哪台后端实例上再进那台实例查应用日志。结果发现是后端的Work池被慢SQL全部占满健康检查只检查进程存活没有检查线程池状态导致网关把流量继续打到这台“半死不活”的实例上后端对网关返回了非正常响应网关就把它翻译成了502。504的排查思路又不一样。如果后端接口的平均耗时只有几十毫秒但网关返回504大概率是网关到后端之间的超时配置比接口真实耗时要短。这种情况要分两端看客户端到网关的超时、网关到后端的超时。很多团队只调了客户端超时没调网关侧的超时压测一上来就全是504。再说说404和403这些相对常见的。404除了路径写错还有一种情况是服务注册没有生效新发布的实例还没把路由信息同步到网关导致网关找不到上游路径。403要区分是鉴权失败还是权限不足看日志里是被身份认证拦截还是被业务权限拦截。我的习惯是任何状态码异常先把入口层、应用层、数据库慢查询的时间线拉出来对齐再猜原因。切忌看了状态码就急着改配置一定要有日志支撑。4.4 面试答题话术与避坑指南最后说点面试的“软技巧”。同样一个问题不同的答法给面试官的印象完全不一样。比如问“HTTP为什么是无状态的”低分回答是“因为HTTP协议就是这么定义的”高分回答是“因为HTTP底层基于TCP而TCP连接本身没有用户概念每次请求都是独立的请求-响应回合服务器不记录历史请求。为了维持登录态我们才引入Cookie/Session或Token机制”。看出区别没有高分回答把“是什么”和“怎么做”串起来了。避坑方面我总结了几个常见的低分点把HTTPS说成“用公钥加密用私钥解密”就完了。一定要补上“混合加密”和“为什么”否则显得只背了概念。分不清“对称加密”和“非对称加密”的应用场景。要说清楚对称加密运用于数据传输阶段非对称加密运用于密钥协商阶段。把HTTP/2说成完全解决队头阻塞。注意TCP层面的队头阻塞还在只有HTTP/3通过QUIC缓解了。一上来就背状态码不去联系实际场景。最好结合线上事故讲比如“我们之前遇过499是因为用户反复刷新页面把长耗时接口的响应等没了后来通过接口拆分和超时优化解决”。把Cookie和Session对立起来。Cookie是实现会话的载体Session是服务端状态Token是另一种方案三者不是互斥关系。我还有一个不太常规的建议面试前自己动手抓一次自己的网站或App的HTTP/HTTPS包。用抓包工具看看真实的请求头、响应头、TLS握手过程。这个过程会让你对那些“八股”的理解完全不一样。很多问题你背了好多遍都记不住但自己看过一次真实交互流程就再也不会忘。我在实际学习和排查过程中最大的体会是HTTP/HTTPS不是一门“背完就丢”的学科它就是你每天都在用的基础设施。面试只是一个起点真正把协议的原理吃透对后续排查线上问题、设计接口、做性能优化都有直接的帮助。希望这篇梳理能让你在下次面试时少一点慌张多一点底气。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价