版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaHTTP协议面试题及详细答案(实战版)一、HTTP基础核心面试题1.简单说下HTTP协议是什么?有什么特点?答案:HTTP是超文本传输协议,是应用层的、基于请求-响应模式的网络协议,也是Web开发、Java接口调用最核心的协议,主要用于客户端和服务端之间的数据传输。核心特点:无状态:协议本身不会记录客户端的请求状态,每次请求都是独立的,服务端无法识别两次请求是否来自同一个客户端,后续靠Cookie、Session、Token实现状态保持。无连接:HTTP1.0默认短连接,一次请求响应完成后立即断开连接;HTTP1.1默认长连接,连接可复用。基于请求-响应模型:必须客户端主动发起请求,服务端被动响应,服务端无法主动推送数据给客户端(普通HTTP场景)。明文传输:HTTP数据都是明文传输,不加密,安全性差,这也是HTTPS出现的核心原因。2.HTTP1.0、HTTP1.1、HTTP2.0核心区别是什么?答案:HTTP1.0:默认短连接,每次请求都需要建立、断开一次TCP连接,开销极大;不支持请求管道化,只能串行请求;缓存机制简单,仅支持Expires缓存。HTTP1.1(目前最常用):默认开启长连接(Connection:keep-alive),一个TCP连接可多次请求响应;支持请求管道化,可连续发送多个请求,无需等待上一个响应完成;新增ETag、Cache-Control等完善缓存机制;支持断点续传、分块传输。缺点是依然存在队头阻塞,同一连接内一个请求超时,后续请求全部阻塞。HTTP2.0:基于HTTPS,彻底解决队头阻塞;支持多路复用,一个TCP连接可并行处理多个请求,互不干扰;支持头部压缩,减少请求头冗余数据传输;支持服务端主动推送,可提前推送客户端需要的静态资源;二进制帧传输,效率远高于文本格式的HTTP1.x。3.什么是HTTP无状态?业务中如何解决无状态问题?答案:HTTP无状态指协议本身不会存储任何客户端的访问信息,服务端接收到两次请求时,无法判断两个请求是否为同一用户、同一会话。业务中主流解决方案:Cookie:存储在客户端浏览器,每次请求自动携带,服务端可通过Cookie识别用户。容量小、不安全、可被篡改。Session:存储在服务端,服务端生成唯一SessionID存入Cookie下发客户端,下次请求携带SessionID,实现会话绑定。占用服务端内存,分布式场景需解决Session共享问题。Token(主流):登录成功后服务端生成令牌返回客户端,客户端后续请求在请求头携带Token,服务端校验令牌识别用户,无服务端存储压力,适配分布式、微服务架构。二、HTTP请求与响应结构面试题1.一个完整的HTTP请求包含哪三部分?答案:请求行、请求头、请求体。请求行:包含请求方法、请求URL、协议版本,例:GET/user/listHTTP/1.1请求头:客户端携带的各类参数,常见有Host、User-Agent、Content-Type、Cookie、Authorization、Referer等请求体:请求携带的参数数据,GET请求无请求体,POST、PUT等请求常用请求体传参(JSON、表单数据等)2.一个完整的HTTP响应包含哪三部分?答案:状态行、响应头、响应体。状态行:协议版本、状态码、状态描述,例:HTTP/1.1200OK响应头:服务端返回的配置信息,常见有Server、Content-Type、Content-Length、Set-Cookie、Cache-Control等响应体:服务端返回的核心数据,如JSON数据、页面代码、文件流等3.常见的请求头Content-Type有哪些?各自适用场景?答案:application/x-www-form-urlencoded:默认表单提交格式,参数以key=value&key=value拼接,仅支持普通文本参数,不适合传复杂JSON、文件。application/json:目前Java接口最常用格式,传递JSON格式数据,支持复杂对象、嵌套参数,适配前后端分离项目。multipart/form-data:专门用于文件上传,同时支持传递普通参数和文件参数,会将数据分割成多部分传输。text/plain:纯文本格式,仅传递普通字符串数据。三、HTTP请求方法面试题(Java接口重点)1.HTTP常用请求方法有哪些?GET和POST核心区别?答案:常用方法:GET、POST、PUT、DELETE、HEAD、OPTIONS。其中GET、POST最常用,PUT用于更新资源,DELETE用于删除资源,OPTIONS用于跨域预检。GET和POST核心区别:传参方式:GET参数拼接在URL后面,POST参数放在请求体中。数据限制:GET受浏览器、服务器URL长度限制,无法传输大数据;POST无长度限制,可传文件、大文本。缓存特性:GET请求默认可被浏览器缓存,POST默认不缓存。安全性:GET参数暴露在地址栏,安全性低;POST参数隐藏在请求体,相对安全。幂等性:GET是幂等方法,多次请求结果一致;POST非幂等,多次请求可能产生不同结果(如重复下单)。2.什么是幂等性?哪些HTTP方法是幂等的?业务中如何保证接口幂等?答案:幂等性指一个请求执行一次和执行多次,对服务端资源产生的效果完全一致,不会产生重复数据、重复操作问题。幂等方法:GET、PUT、DELETE、HEAD、OPTIONS;非幂等方法:POST。Java业务接口幂等解决方案:数据库唯一索引:防止重复插入重复数据令牌机制:前端每次请求携带唯一令牌,服务端校验令牌是否已使用Redis分布式锁/防重锁:基于请求唯一标识锁定,拦截重复请求接口请求参数去重、状态机控制(如订单已支付则拒绝重复支付)3.PUT和POST都能更新数据,为什么不混用?答案:核心是语义和幂等性区别:PUT:语义为更新/覆盖资源,是幂等方法,多次请求结果一致,必须指定资源唯一标识(如用户ID),适合精准更新。POST:语义为提交资源,默认用于新增,非幂等,多次请求可能产生多条数据,无固定资源标识。RESTful规范中:新增用POST,全量更新用PUT,局部更新可使用PATCH。四、HTTP状态码面试题(高频)1.HTTP状态码分为哪五类?每类代表什么含义?答案:1xx信息类:请求已接收,继续处理(极少用)2xx成功类:请求处理成功3xx重定向类:需要客户端进一步操作完成请求4xx客户端错误:请求参数、地址、权限等客户端问题5xx服务端错误:服务端代码异常、服务器故障2.高频状态码详细说明(面试必考)答案:200OK:请求成功,服务端正常返回数据201Created:资源创建成功(新增接口常用)301永久重定向:资源永久迁移,浏览器会缓存重定向地址,后续直接访问新地址302临时重定向:资源临时迁移,不缓存地址,下次请求仍访问原地址304NotModified:资源未修改,走本地缓存,无需重新下载资源400BadRequest:请求参数错误、JSON格式错误、参数不合法401Unauthorized:未登录、Token失效、无身份认证403Forbidden:已认证,但无访问权限404NotFound:请求接口地址不存在405MethodNotAllowed:请求方法不支持(如接口只支持GET,前端用POST请求)500InternalServerError:服务端代码报错、空指针、数据库异常等502BadGateway:网关/代理服务器未收到后端服务响应(后端服务宕机、端口不通)504GatewayTimeout:网关请求后端服务超时(接口执行太慢、线程阻塞)五、HTTPS面试题(Java后端高频)1.HTTP和HTTPS核心区别?答案:端口不同:HTTP默认80端口,HTTPS默认443端口安全性不同:HTTP明文传输,无加密,易被抓包、篡改、劫持;HTTPS基于SSL/TLS加密传输,数据加密、防篡改、防劫持协议层级不同:HTTPS=HTTP+SSL/TLS,在HTTP和TCP之间增加加密层性能不同:HTTPS需要握手、加密解密,请求速度比HTTP稍慢,CPU开销更高证书要求:HTTPS需要配置CA数字证书,HTTP无需证书2.HTTPS握手过程是怎样的?(简述即可,面试标准版)答案:HTTPS基于SSL/TLS三次握手,核心流程:客户端发起请求,携带支持的加密套件、协议版本服务端响应,返回选定的加密套件、服务器证书(含公钥)客户端校验证书合法性,校验通过后,生成随机密钥,用服务端公钥加密后发送给服务端服务端用自身私钥解密,获取随机密钥双方通过随机密钥进行对称加密通信,后续所有数据传输均加密3.对称加密和非对称加密在HTTPS中的作用?答案:非对称加密(公钥+私钥):仅用于握手阶段,加密传输对称密钥,解决密钥传输安全问题,效率低,不用于大量数据加密对称加密:握手完成后,所有业务数据的传输加密,加密解密速度快、性能高,适合海量数据传输HTTPS结合两者优势:用非对称加密保密钥安全,用对称加密保传输性能。六、Java实战HTTP面试题(接口开发、踩坑)1.SpringBoot中GET接口无法接收JSON参数,为什么?怎么解决?答案:原因:GET请求无请求体,JSON数据需要放在请求体中传输,Spring默认GET接口只解析URL拼接参数、路径参数,不解析请求体JSON。解决方案:规范开发:查询类GET接口用@RequestParam接收普通参数、@PathVariable接收路径参数,不传递JSON特殊场景:若必须GET传JSON,可通过自定义解析器实现,实际开发不推荐,不符合REST规范2.跨域是什么?为什么会出现跨域?SpringBoot如何解决跨域?答案:跨域是浏览器的同源策略限制,当协议、域名、端口任意一个不同,前端请求后端接口就会触发跨域拦截。同源策略是浏览器的安全机制,防止恶意网站窃取数据。SpringBoot主流解决方式:注解方式:在Controller类或方法上加@CrossOrigin(简单快捷,适合小型项目)全局配置方式:实现WebMvcConfigurer接口,重写addCorsMappings方法,统一配置跨域规则(企业项目主流)网关配置:微服务项目中,在Gateway网关统一配置跨域,无需每个服务单独配置3.HTTP长连接和短连接在Java项目中的应用场景?答案:短连接:一次请求一次连接,适合接口调用频率低、单次请求耗时短的场景,如普通后台管理接口、临时查询接口。用完即断,不占用连接资源。长连接:连接复用,适合高频调用、实时交互场景,如微服务内部调用、第三方接口批量调用、WebSocket
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年枣庄市台儿庄区食品药品监督管理局招聘试题(附答案)
- 2026年浙江省辅警人员招聘考试题库及答案
- 义务教育学校校长教育政策和理论考试模拟试题
- 2026年医用高压氧舱操作理论题库及完整答案
- 2026年厂区物料运输扬尘管控培训考核试题附答案
- 职工宿舍公共物资管理考试题库及答案
- 2026年主管技师影像诊断专业刷题题库及答案
- 2026年安全生产考试题库及答案
- 2026年安全生产考试题库(行业安全规范)安全生产法规专项试题(含答案)
- 2026年法律职业资格考试保险法基础过关卷
- 2027年初中八年级心理健康《绽放自信的花朵》教学设计
- 高中生物高三一轮复习教学设计:植物生长素与其他植物激素核心考点突破
- 2026年最高人民检察院招聘书记员考试试题及答案
- 高中物理选择性必修第三册《气体的状态》教学设计
- 地震勘探平原地区安全作业培训
- 既有建筑外立面改造施工技术方案
- E三相异步电动机的运行维护与故障处理
- 木作文物修复师岗位实践理论考核试卷含答案
- (2026年秋)人教版八年级地理上册知识点大全(2024修订版)
- 吊篮施工专项方案及吊篮安全操作方案
- 【答案】《人工智能与创新》(南开大学)章节期末中国大学慕课答案
评论
0/150
提交评论