版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HTTP常见面试题及详细答案(实战完整版)一、HTTP基础核心面试题1.简单说下HTTP是什么?有什么特点?HTTP是超文本传输协议,是客户端和服务端之间传输网页、接口数据的应用层协议,也是互联网数据交互的基础协议。核心特点主要有4点:无连接:默认一次请求建立一次连接,请求响应完成后就断开连接,不会持续占用通道。HTTP1.1支持长连接后,可在一次连接内处理多次请求,但本质还是无状态。无状态:协议本身不会记录客户端的任何访问信息,每次请求都是独立的,服务端无法识别两次请求是否来自同一个用户。所以需要Cookie、Session、Token来做状态保持。灵活简单:请求方式、请求头配置简单,支持传输文本、图片、视频、接口JSON等各类数据格式,通用性极强。基于请求-响应模型:必须是客户端主动发起请求,服务端被动响应,服务端无法主动给客户端推送数据。2.HTTP和HTTPS的核心区别是什么?HTTPS就是HTTP+SSL/TLS加密协议,核心区别集中在安全、端口、开销三个方面:端口不同:HTTP默认80端口,HTTPS默认443端口。安全性不同:HTTP是明文传输,数据直接暴露,容易被抓包、篡改、窃听;HTTPS对传输数据做加密、校验,能防止数据泄露和篡改。开销不同:HTTP传输速度快、资源开销小;HTTPS需要握手、加密解密过程,会稍微消耗服务器资源,延迟略高。证书要求:HTTP无需证书;HTTPS需要配置CA颁发的数字证书,用来验证网站合法性,防止中间人攻击。3.HTTP1.0、HTTP1.1、HTTP2.0的区别?这是面试高频对比题,核心迭代优化点如下:HTTP1.0早期版本,缺陷非常明显:每次请求都要新建TCP连接,请求完成立即断开,频繁建立断开连接会产生大量耗时,并发请求性能极差,不适合现代多资源的网页场景。HTTP1.1(目前最通用版本)针对1.0做了大量优化,是沿用最广的版本:默认支持长连接,一次TCP连接可以处理多次HTTP请求,减少握手开销。支持管道化请求,可一次性发送多个请求,不用等上一个响应完成再发下一个(但存在队头阻塞问题)。新增缓存策略,细化了缓存控制字段,提升资源复用率。支持断点续传,文件传输中断后可继续传输,不用从头再来。缺点:依然存在队头阻塞,一个请求卡住,同连接后续所有请求都会被阻塞;请求头冗余大,每次请求都会携带完整请求头。HTTP2.0彻底解决1.1的核心痛点,主打高性能:二进制帧传输:替代文本格式,数据传输更高效、解析更快。多路复用:一条TCP连接可同时并发多个请求、响应,互不干扰,彻底解决队头阻塞。头部压缩:对重复的请求头、响应头做压缩,大幅减少传输数据量。服务端推送:服务端可主动推送静态资源给客户端,无需客户端逐个请求,提升页面加载速度。二、HTTP请求与响应面试题1.一个完整的HTTP请求包含哪几部分?分为三部分,缺一不可:请求行:包含请求方式、请求URL、协议版本,例如GET/index.htmlHTTP/1.1。请求头:客户端附加的各类参数,比如Host、User-Agent、Cookie、Content-Type、Referer等,用来告诉服务端客户端信息、数据格式等。请求体:请求携带的参数数据,GET请求一般没有请求体,POST、PUT等请求常用请求体传参。2.一个完整的HTTP响应包含哪几部分?状态行:协议版本、状态码、状态描述,例如HTTP/1.1200OK。响应头:服务端返回的配置信息,比如Cache-Control、Set-Cookie、Content-Type、Server等。响应体:核心返回数据,比如网页代码、JSON接口数据、文件流、图片资源等。3.GET和POST的核心区别?(面试必问)不要只说“GET传参在地址栏,POST在请求体”,完整标准答案如下:传参方式不同:GET参数拼接在URL地址栏中;POST参数放在请求体中。安全性不同:GET参数公开可见,会被浏览器记录、缓存,容易泄露;POST参数相对隐蔽,安全性更高。数据长度限制:GET受浏览器URL长度限制,只能传少量数据;POST无明确长度限制,可传输大量数据、文件。缓存特性:GET请求默认会被浏览器缓存,重复请求会读取缓存;POST默认不缓存。书签与历史记录:GET可保存书签、保留历史记录;POST无法保存书签,不会留存访问记录。语义不同:GET用于查询、获取数据,是幂等请求;POST用于提交、新增数据,非幂等请求。补充:幂等性:多次发起相同请求,最终服务器数据状态一致,不会产生多余影响。GET、PUT、DELETE是幂等,POST非幂等。4.常见的HTTP请求方式有哪些?各自用途?GET:查询资源,只读操作,幂等,可缓存。POST:提交数据、新增资源,非幂等,用于表单提交、接口新增。PUT:修改、更新已有资源,幂等,整体更新数据。DELETE:删除服务器资源,幂等。HEAD:和GET类似,但只返回响应头,不返回响应体,用于检测资源是否存在、获取文件大小。OPTIONS:查询服务器支持的请求方式,常用于跨域预检请求。PATCH:局部更新资源,区别于PUT整体更新。三、HTTP状态码高频面试题1.状态码分类1xx信息类:请求已接收,继续处理2xx成功类:请求处理成功3xx重定向类:需要跳转、缓存复用4xx客户端错误:请求参数、权限、地址有误5xx服务端错误:服务器代码、配置、异常问题2.高频常见状态码及场景2xx成功200OK:请求成功,数据正常返回201Created:资源新增成功,常用于POST请求204NoContent:请求成功,无返回内容3xx重定向301永久重定向:资源永久迁移,浏览器会缓存跳转地址,后续直接访问新地址302临时重定向:资源临时跳转,不缓存,每次请求都会重新跳转304NotModified:资源未修改,直接使用本地缓存,无需重新下载资源(前端优化核心)4xx客户端错误400BadRequest:请求参数格式错误、参数不合法401Unauthorized:未登录、无令牌,需要身份认证403Forbidden:已认证,但无访问权限404NotFound:请求地址不存在、资源丢失405MethodNotAllowed:请求方式不支持,比如接口只支持GET,客户端发了POST409Conflict:请求冲突,数据状态冲突(比如重复提交)5xx服务端错误500InternalServerError:服务器代码异常、逻辑报错502BadGateway:网关/代理服务器收到无效响应(后端服务挂了)503ServiceUnavailable:服务器过载、停机维护、服务不可用504GatewayTimeout:网关超时,后端接口响应太慢四、HTTP缓存机制(前端/后端高频)1.HTTP缓存分为哪两种?区别是什么?分为强缓存和协商缓存,优先级:强缓存>协商缓存强缓存无需和服务器交互,浏览器直接读取本地缓存,返回200(fromcache),速度最快。控制字段:Cache-Control(现代主流,优先级高):max-age=xxx表示缓存有效期秒数Expires(旧版):设置缓存过期时间点,依赖本地时间,存在误差协商缓存强缓存失效后,浏览器携带缓存标识向服务器校验,资源未更新则返回304,复用缓存;资源更新则返回新数据和200。两组校验字段:Last-Modified/If-Modified-Since:基于文件最后修改时间校验ETag/If-None-Match:基于文件唯一指纹校验,精度更高,优先级高于修改时间2.如何彻底禁用HTTP缓存?服务端设置响应头:Cache-Control:no-cache,no-store,must-revalidate同时搭配Expires:0、Pragma:no-cache,彻底禁止浏览器缓存资源。五、HTTPS与安全相关面试题1.HTTPS握手过程(TLS1.2经典流程)俗称四次握手,核心是协商加密规则、验证证书、生成会话密钥:客户端握手请求:客户端向服务端发送支持的加密套件、随机数。服务端响应:服务端选定加密套件、返回随机数、下发服务器证书。客户端校验证书+发送密钥:客户端验证证书合法有效,生成预主密钥,用服务器公钥加密后发送给服务端。双方确认加密通信:客户端和服务端通过随机数、预主密钥生成统一会话密钥,后续所有数据通过该密钥对称加密传输,双方告知对方加密通道建立完成。2.什么是中间人攻击?HTTPS如何防御?中间人攻击就是攻击者拦截客户端和服务端的传输数据,窃听、篡改数据,HTTP明文传输极易被攻击。HTTPS防御方式:通过CA权威证书验证服务器身份,伪造证书无法通过校验传输数据加密处理,中间人无法解密内容数据带校验指纹,篡改后会被识别,通信直接失效3.对称加密和非对称加密在HTTPS中的作用非对称加密:用于握手阶段,加密传输会话密钥,保证密钥传输安全,运算速度慢。对称加密:用于正式数据传输,使用协商好的会话密钥加密解密数据,运算速度快,适合大量数据传输。简单说:非对称加密保密钥安全,对称加密保传输效率。六、高频疑难面试题1.HTTP无状态,如何实现用户登录状态保持?依靠Cookie、Session、Token三种主流方案:Cookie:服务端下发到浏览器的小型文本数据,浏览器后续每次请求自动携带,记录用户信息,存储在客户端。Session:服务端存储用户会话信息,客户端只存SessionID,通过Cookie携带ID匹配服务端数据,安全性更高。Token:后端生成加密令牌,客户端存储在本地,请求时手动携带,无服务端存储压力,适合分布式、前后端分离项目。2.跨域是什么?为什么浏览器会跨域?HTTP跨域解决方案?跨域是浏览器的同源策略限制:协议、域名、端口任意一个不同,就是跨域,浏览器会拦截非法跨域请求,防止恶意网站窃取数据。常用解决方案:服务端配置CORS跨域允许头(主流正式方案)前端本地代理转发(开发环境使用)JSONP(只支持GET请求,兼容性好但功能有限)Nginx反向代理统一域名端口3.什么是HTTP队头阻塞?HTTP1.1的管道化请求存在的问题:同一个TCP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TCAAAD 046-2026 生成式引擎优化服务要求
- 继续教育动物疫病防控张立新
- 负反馈放大电路分析计算常用方法
- 湖北省武汉市实验中学高二年级地理第5章知识点巩固习题及答案
- 2026年浙江省杭州市第一中学九年级化学第4章同步练习题及答案
- 2026年湖南省高三生物一轮复习生物化学应用测试卷及答案
- 浙江省杭州市第一中学九年级英语第6单元阅读理解测试卷及答案
- 2026年部编版高中语文第5单元现代文阅读理解测试卷及答案
- 网络营销发展中的困惑问题
- 综合布线工程测试及验收
- 门诊以及手术室外麻醉
- 住院患者中途离院风险管控专家共识
- 2026年执业医师资格考试中医骨伤科专项训练题库
- 2026秋部编版六年级语文上册第4单元语文园地四教学课件
- 飞轮电化学混合独立储能电站项目安全生产应急管理预案
- 《中国铁路哈尔滨局集团有限公司普速铁路行车组织规则改》 哈铁总201873号 最终修订版
- 《长征》(王树增)深度解析:精神与历史的回响
- 《嵌入式技术及应用》课程教学大纲
- 第十四章-公共事业管理的现代化
- 程序文件(气瓶检验机构)(2024版)-符合TSG Z7001-2021
- 2025下半年安徽交控驿达集团招聘11人笔试历年参考题库附带答案详解
评论
0/150
提交评论