HTTP 高频面试题及详细答案(精简实战版)_第1页
HTTP 高频面试题及详细答案(精简实战版)_第2页
HTTP 高频面试题及详细答案(精简实战版)_第3页
HTTP 高频面试题及详细答案(精简实战版)_第4页
HTTP 高频面试题及详细答案(精简实战版)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HTTP高频面试题及详细答案(精简实战版)1、简单说说什么是HTTP协议?HTTP全称超文本传输协议,是Web领域最基础的应用层协议,主要用于客户端和服务器之间的数据交互,比如浏览器访问网页、APP请求接口数据都基于它。它的核心特点是基于TCP协议传输、简单灵活、通用性强,默认明文传输,没有加密机制,所以数据传输存在安全风险。同时HTTP是无状态协议,服务器不会主动记录客户端的访问状态,每次请求都是独立的。2、HTTP无状态是什么意思?怎么解决无状态带来的问题?无状态指的是服务器不会保留任何客户端的请求记录,每一次客户端请求,服务器都会当成全新请求处理,无法识别两次请求是否来自同一个用户。这种机制简化了服务器设计,但无法实现登录保持、购物车、用户会话等功能。行业内主流解决方案就是Cookie+Session:客户端首次登录后,服务器生成唯一Session存储用户信息,同时下发Cookie保存SessionID到浏览器;后续客户端每次请求,都会自动携带Cookie,服务器通过SessionID匹配对应用户会话,从而识别用户身份。3、HTTP常见请求方法有哪些?核心区别是什么?日常面试和开发重点掌握5种核心方法即可:GET:从服务器获取数据,只读不修改资源。参数拼接在URL上,有长度限制、不安全、可被缓存、可收藏书签、无请求体。POST:向服务器提交数据,用于新增、提交表单等。参数放在请求体中,无严格长度限制、默认不缓存、相对更安全。PUT:用于更新服务器已有资源,整体替换资源数据,具备幂等性。DELETE:删除服务器指定资源,具备幂等性。HEAD:和GET逻辑一致,但只返回响应头,不返回响应体,常用于检测链接有效性、资源是否存在。补充:幂等性指多次执行相同请求,最终服务器资源状态和执行一次完全一致。4、GET和POST最核心的区别?(面试高频简答)1.语义不同:GET用于查,POST用于提交/新增;2.参数位置不同:GET参数在URL,POST在请求体;3.缓存机制:GET默认可缓存,POST基本不缓存;4.安全性:GET参数暴露在地址栏,安全性差,POST相对隐蔽;5.幂等性:GET是幂等请求,POST非幂等请求。5、常见HTTP状态码分类及高频状态码含义?状态码分为5大类,重点记高频常用码:1xx信息型:请求已接收,继续处理(日常开发极少用到)2xx成功型

200:请求成功,数据正常返回

204:请求成功,无返回内容

206:断点续传成功,返回部分资源

3xx重定向

301:永久重定向,资源永久迁移,浏览器会缓存跳转地址

302:临时重定向,本次请求跳转,不缓存

304:资源未修改,走本地缓存,无需重新下载资源

4xx客户端错误

400:请求参数错误、格式非法

401:未登录、无身份认证

403:权限不足,禁止访问

404:请求资源不存在

405:请求方法不支持(比如接口只支持GET,用了POST)

5xx服务端错误

500:服务器内部异常,代码报错、逻辑出错

502:网关错误,后端服务挂掉或接口不通

503:服务器繁忙、过载或维护,暂时无法提供服务

6、说说HTTP/1.0、HTTP/1.1、HTTP/2的核心区别?HTTP/1.0:短连接机制,每次请求都会建立一次TCP连接,请求完成立即断开。频繁请求会反复握手、断开,性能很差,不支持长连接和断点续传。HTTP/1.1:目前最通用的版本,默认开启Keep-Alive长连接,一次TCP连接可处理多次HTTP请求,减少握手开销;支持断点续传、缓存优化。缺点是存在队头阻塞,同一个连接内,前一个请求未完成,后续请求都会被阻塞。HTTP/2:基于二进制帧传输,替代旧的文本传输;支持多路复用,一个连接可并行处理多个请求,彻底解决队头阻塞;支持头部压缩、服务器主动推送资源,大幅提升传输效率。7、Keep-Alive长连接的作用和弊端?作用:避免每次HTTP请求都重复建立、关闭TCP连接,减少三次握手、四次挥手的开销,大幅提升页面访问和接口请求速度。弊端:长连接会持续占用服务器连接资源,如果大量客户端长期保持空闲长连接,会占用服务器端口和内存,可能导致服务器资源耗尽、无法响应新请求。所以服务端会设置超时时间,自动关闭闲置过久的连接。8、HTTPS和HTTP的区别?HTTPS为什么安全?HTTP是明文传输、无加密、无身份校验,数据容易被窃听、篡改、伪造;HTTPS=HTTP+SSL/TLS加密层,端口分别是HTTP80、HTTPS443。HTTPS安全的核心原因,依靠混合加密机制和证书校验:1.握手阶段通过非对称加密协商出对称密钥,避免密钥被窃取;2.数据传输阶段用对称加密加密明文数据,兼顾安全性和传输速度;3.通过CA数字证书校验服务器身份,防止中间人伪造服务器;4.附带消息校验机制,防止数据传输过程中被篡改。9、简单说一下HTTPS握手流程?1.客户端发起请求,告知服务器自己支持的加密套件、随机数;2.服务器返回选定的加密算法、服务器随机数,同时下发CA证书;3.客户端验证证书合法性,验证通过后生成客户端随机密钥,用服务器公钥加密后发送给服务器;4.服务器用自身私钥解密,获取密钥;5.双方确认密钥一致,握手完成,后续所有数据均通过对称密钥加密传输。10、Cookie和Session的区别?1.存储位置:Cookie保存在客户端浏览器,Session保存在服务器端;2.存储容量:Cookie容量极小,一般4KB左右;Session无严格限制,取决于服务器配置;3.安全性:Cookie存在本地,可被篡改、窃取,安全性低;Session数据存在服务端,安全性更高;4.失效机制:Cookie可设置固定过期时间,也可随浏览器关闭失效;Session默认随会话超时自动销毁;5.依赖关系:Session依赖Cookie存储SessionID,若禁用Cookie,可通过URL传参实现Session识别。11、浏览器输入URL回车后,完整请求流程?(经典面试题)1.URL解析:浏览器校验URL格式,拆分协议、域名、端口、请求路径;2.DNS解析:从浏览器缓存、系统缓存、本地DNS服务器逐级查询,最终将域名解析为服务器IP地址;3.建立TCP连接:通过三次握手,和服务器建立可靠TCP连接;4.HTTPS握手:如果是HTTPS请求,完成SSL/TLS握手,协商加密密钥;5.发送HTTP请求:浏览器组装请求头、请求体,向服务器发送请求;6.服务器处理请求:服务器接收请求,校验参数、执行业务逻辑、查询数据,组装响应数据;7.返回响应数据:服务器返回状态码、响应头、响应体数据;8.浏览器渲染页面:解析HTML、CSS、JS,渲染页面资源,加载图片、视频等静态资源;9.关闭连接:短连接直接四次挥手断开,长连接等待超时后断开。12、HTTP缓存机制了解吗?强缓存和协商缓存区别?HTTP缓存是为了减少重复请求、提升页面加载速度,分为强缓存和协商缓存。强缓存:优先级最高,浏览器判断本地资源未过期,直接读取本地缓存,不发送任何请求到服务器,返回200状态码。核心字段:Expires(绝对时间)、Cache-Control(相对时间,优先级更高)。协商缓存:强缓存失效后,浏览器携带资源标识向服务器发送请求,服务器校验资源是否更新。未更新则返回304,浏览器继续用本地缓存;已更新则返回新资源和200。核心字段:Last-Modified/If-Modified-Since、ETag/If-None-Match。13、常见的HTTP安全问题及防护方案?XSS跨站脚本攻击:攻击者向页面注入恶意JS代码,用户访问时执行,窃取Cookie、篡改页面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论