HTTP 协议高频面试题(含详细接地气答案)_第1页
HTTP 协议高频面试题(含详细接地气答案)_第2页
HTTP 协议高频面试题(含详细接地气答案)_第3页
HTTP 协议高频面试题(含详细接地气答案)_第4页
HTTP 协议高频面试题(含详细接地气答案)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

HTTP协议高频面试题(含详细接地气答案)一、基础概念类(入门必问)1、简单说下什么是HTTP协议?核心作用是什么?参考答案:HTTP是超文本传输协议,是客户端和服务端之间传输数据的应用层协议,基于TCP传输。核心就是规范浏览器、APP这类客户端,和后端服务器怎么通信、怎么传数据,比如传网页、图片、接口JSON数据。它是互联网数据交互的基础规则,所有网页访问、接口请求基本都基于HTTP/HTTPS。另外补充两个关键特性:无连接、无状态。2、HTTP无状态、无连接分别是什么意思?有什么优缺点?参考答案:无连接:每次请求完成后,TCP连接就会断开,不会一直占用连接资源。HTTP1.1之后默认支持长连接,可以复用连接,不用每次都重新建立。优点:节省服务器资源,并发能力强;缺点:短连接场景下,频繁建连断连会有开销。无状态:服务器不会记住客户端的上一次请求信息,每一次HTTP请求都是独立的,服务器不知道你上次访问了什么、是否登录。优点:服务器压力小、简单高效、易扩展;缺点:需要手动做状态保持,也就是Cookie、Session、Token的由来。3、HTTP1.0、HTTP1.1、HTTP2、HTTP3的核心区别?参考答案:HTTP1.0:默认短连接,一次请求一次连接,请求完立刻断开,网页资源多的时候效率极低,性能很差。HTTP1.1(目前最通用)默认长连接(Connection:keep-alive),一个连接可以多次请求支持管道化请求,但有队头阻塞问题(前面的请求没返回,后面的都等着)新增缓存策略、断点续传、HOST字段,支持虚拟主机HTTP2基于TCP,引入多路复用,一个连接同时并发多个请求,彻底解决队头阻塞头部压缩,减少请求头冗余数据支持服务器主动推送资源HTTP3放弃TCP,基于UDP协议(QUIC协议)彻底解决TCP层面的队头阻塞连接建立更快、弱网环境下稳定性更好,目前逐步普及二、请求与响应结构(高频基础)4、一个完整的HTTP请求由哪几部分组成?参考答案:一共四部分,面试直接按这个说即可:请求行:请求方法+URL+协议版本,比如GET/indexHTTP/1.1请求头:各种参数,比如Host、User-Agent、Cookie、Content-Type、Referer等空行:固定分隔符,区分请求头和请求体请求体:POST、PUT等方法携带的参数,GET没有请求体5、HTTP响应由哪几部分组成?参考答案:状态行:协议版本+状态码+状态描述,比如HTTP/1.1200OK响应头:服务器返回的配置信息,Cache-Control、Set-Cookie、Content-Type等空行:分隔符响应体:真正的返回数据,HTML、JSON、图片文件等6、GET和POST核心区别?(面试官必问,避开网上错误答案)参考答案:先纠正误区:不是GET没有请求体、POST有请求体,HTTP规范里GET也可以带请求体,只是浏览器、框架都不支持、不推荐。真实核心区别:参数位置不同:GET参数拼接在URL上,POST参数放在请求体里缓存机制不同:GET默认会被浏览器缓存,POST默认不缓存幂等性不同:GET是幂等请求,多次请求结果一致;POST非幂等,多次请求可能产生多条数据(比如重复提交表单)长度限制:GET受浏览器URL长度限制,传大数据会报错;POST理论上无限制使用场景:GET用于查询数据,POST用于新增、提交数据7、什么是幂等性?常见幂等/非幂等请求方法有哪些?参考答案:幂等性就是:一个请求执行一次和执行多次,服务器结果完全一样,不会产生副作用。主要用来防止重复请求、重复提交。幂等方法:GET、HEAD、PUT、DELETE非幂等方法:POST举例:GET查询用户,查十次数据不变;POST新增订单,发十次会生成十个订单。PUT修改数据,多次修改结果一致,所以是幂等。三、HTTP状态码(面试高频背诵)8、说说常用的HTTP状态码及含义参考答案:状态码分5大类,只记面试常用核心即可:1xx信息类(临时响应)100:继续请求,客户端可以继续发送剩余请求体2xx成功类200:请求成功,正常返回数据201:创建成功,多用于POST新增资源204:无内容,请求成功但无返回数据3xx重定向/缓存301:永久重定向,浏览器会缓存新地址,后续直接访问新地址302:临时重定向,本次跳转,不缓存304:资源未修改,走本地缓存,不用重新下载资源4xx客户端错误400:请求参数错误、格式错误401:未登录、未授权,需要token/登录凭证403:权限不足,已经登录,但没有访问该资源的权限404:资源不存在,URL错误或资源已删除405:请求方法不支持,比如接口只支持GET,你发了POST5xx服务端错误500:服务器内部异常,代码报错、逻辑错误502:网关错误,后端服务挂了、接口不通503:服务器不可用,超载、停机维护504:网关超时,后端接口响应太慢超时四、HTTP缓存机制(重难点、面试核心)9、详细说下HTTP缓存机制,强缓存和协商缓存的区别?参考答案:HTTP缓存是浏览器为了减少重复请求、提升加载速度做的资源缓存,分为强缓存和协商缓存,优先级:强缓存>协商缓存。1、强缓存不会发任何请求到服务器,直接用本地缓存,返回状态码200(fromcache)。对应响应头:Cache-Control(现代主流,优先级高):max-age=xxx表示缓存有效期秒数Expires(旧版):返回一个具体过期时间戳,缺点是依赖本地时间,不准2、协商缓存强缓存失效后,浏览器会发请求和服务器校验资源是否更新,没更新则返回304,继续用本地缓存;更新了则返回200和新资源。两组校验头:Last-Modified/If-Modified-Since:根据文件最后修改时间校验ETag/If-None-Match:根据资源唯一指纹校验,优先级更高,精度更高,解决时间戳精度不足问题核心区别:强缓存不请求服务器,协商缓存需要发请求校验。10、Cache-Control常见值有哪些?参考答案:max-age=xxx:缓存有效时长public:所有地方都可缓存(浏览器、网关)private:仅浏览器可缓存,网关不缓存no-cache:不是不缓存,是不使用强缓存,必须走协商缓存校验no-store:彻底不缓存,所有资源都不保存,每次都重新请求五、HTTPS相关面试题(必考)11、HTTP和HTTPS的区别?参考答案:端口不同:HTTP默认80端口,HTTPS默认443端口安全性不同:HTTP明文传输,数据极易被抓包、篡改、窃听;HTTPS加密传输,安全可靠协议层级不同:HTTPS=HTTP+SSL/TLS加密层性能不同:HTTPS需要握手、加密解密,速度比HTTP稍慢,有少量性能损耗证书要求:HTTPS需要CA颁发的数字证书,HTTP不需要12、HTTPS握手过程?TLS1.2和TLS1.3区别?参考答案:TLS1.2握手(四次握手)客户端发起请求,携带支持的加密套件、TLS版本服务器响应,确定加密套件、TLS版本,返回服务器证书客户端校验证书合法性,生成随机密钥,用服务器公钥加密后发给服务端服务端用私钥解密得到随机密钥,双方协商完成,后续用对称密钥加密通信TLS1.3优化(两次握手)大幅简化握手流程,减少网络往返,握手速度更快、延迟更低,安全性更高,现在主流网站基本都升级TLS1.3。13、HTTPS为什么安全?加密原理是什么?参考答案:HTTPS用了非对称加密+对称加密+数字证书校验三种机制结合:非对称加密:握手阶段用公钥加密、私钥解密,用来传输对称密钥,解决密钥传输安全问题对称加密:正式通信阶段用同一个密钥加密解密,速度快,适合大量数据传输数字证书:防止中间人伪造服务器,确保你访问的是真实服务器,避免中间人攻击14、什么是中间人攻击?HTTPS如何防止?参考答案:中间人攻击就是黑客拦截客户端和服务器的通信数据,窃听、篡改数据,HTTP明文传输完全防不住。HTTPS依靠CA数字证书防范:服务器证书由权威CA签名,浏览器内置根证书,会严格校验证书的签名、有效期、域名匹配度。中间人无法伪造合法证书,所以无法劫持HTTPS通信。六、进阶高频面试题15、HTTP1.1的队头阻塞是什么?HTTP2怎么解决的?参考答案:HTTP1.1队头阻塞:一个TCP连接里,请求是串行的,如果前面一个请求响应慢、卡住了,后面所有请求都会排队等待,没法执行,造成页面加载卡顿。HTTP2解决方案:多路复用同一个TCP连接中,所有请求并行执行,每个请求有独立流标识,一个请求阻塞不会影响其他请求,彻底解决应用层队头阻塞。注意:HTTP2依然基于TCP,TCP层面的队头阻塞依旧存在,这也是HTTP3改用UDP的核心原因。16、Cookie、Session、Token的区别和联系?参考答案:Cookie:浏览器端存储的小文本数据,由服务器下发,浏览器自动携带,存在客户端,不安全、容量小。Session:服务端存储的用户会话数据,依赖Cookie传递SessionID,服务器压力大,不适合分布式、前后端分离项目。Token:令牌,主流是JWT,客户端存储,服务端不用存会话数据,减轻服务端压力,天生适配分布式、跨域、前后端分离项目,安全性更高。17、跨域是什么?为什么浏览器会有跨域限制?HTTP跨域原理?参考答案:跨域就是浏览器的同源策略限制:协议、域名、端口任意一个不同,就是跨域。浏览器限制跨域的核心目的:防止恶意网站窃取用户数据、

温馨提示

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

最新文档

评论

0/150

提交评论