HTTP面试题及答案.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

HTTP面试题及答案

一、基础概念题

HTTP是什么?它的核心作用是什么?

答案:HTTP是超文本传输协议(HyperTextTransferProtocol),是客户端(比如浏览器)和服务器之间传输数据的规则。核心作用是“请求-响应”:客户端发请求要资源(比如网页、图片),服务器接请求后返回对应数据,让超文本(文字、图片、链接等)能在网络上传输。

GET和POST两种请求方法的主要区别?实际开发中怎么选?

答案:最直观的是参数位置——GET参数拼在URL里(比如?id=1),POST放在请求体里;但关键区别在使用场景:

GET适合“查数据”,比如搜文章、获取用户信息,因为它能被浏览器缓存、可书签收藏,但参数长度有限(不同浏览器不一样,一般几KB),且明文传输不安全;

POST适合“提交数据”,比如注册、上传文件,参数藏在请求体,长度没明确限制,且可加密,重复提交可能有副作用(比如重复下单)。

实际选的时候,看操作是“读取”还是“修改/提交”,读用GET,改/提交用POST。

HTTP1.0、1.1、2.0有哪些关键区别?

答案:

1.0:每次请求都要新建TCP连接,请求完就断,效率低(比如一个网页有10张图,要连10次);

1.1:支持“长连接”(Connection:keep-alive),一个TCP连接能发多个请求,还加了管道化(但还是按顺序处理,前一个卡了后一个等)、缓存控制(比如Cache-Control);

2.0:用“二进制帧”(1.x是文本),支持“多路复用”——一个TCP连接里能同时发多个请求,不用等前一个完成;还加了头部压缩、服务器推送(比如服务器主动发网页需要的CSS/JS),效率比1.1高很多。

二、核心机制题

HTTP状态码分几类?常用的状态码有哪些,分别代表什么场景?

答案:分5类,按第一位数字:

1xx(信息):比如100Continue,服务器说“我收到请求头了,你可以发请求体了”;

2xx(成功):200OK(请求成功)、204NoContent(成功但没返回数据,比如删除操作);

3xx(重定向):301永久重定向(比如旧域名跳新域名,浏览器会记下来)、302临时重定向(比如登录后跳首页,下次不记)、304NotModified(缓存命中,服务器说“你本地的缓存还能用,不用再传数据了”);

4xx(客户端错):400BadRequest(请求参数错)、401Unauthorized(没登录/登录过期)、403Forbidden(登录了但没权限,比如普通用户看管理员页面)、404NotFound(要的资源不存在,比如输错URL);

5xx(服务器错):500InternalServerError(服务器内部崩了,比如代码报错)、502BadGateway(服务器当网关时,后端服务没响应,比如Nginx连不上Tomcat)、504GatewayTimeout(网关等后端响应超时)。

HTTP缓存机制怎么工作?强缓存和协商缓存有啥区别?

答案:缓存是为了让浏览器少发请求、服务器少传数据,提高速度。分两种:

强缓存:浏览器先看本地缓存的“过期时间”,没过期直接用,不发请求给服务器。靠响应头里的Cache-Control(比如max-age=3600,表示1小时内不过期)或Expires(旧版,用具体时间)控制;

协商缓存:强缓存过期了,浏览器发请求给服务器,带If-None-Match(对应服务器之前返回的ETag,资源的唯一标识)或If-Modified-Since(对应Last-Modified,资源最后修改时间),服务器对比后,若资源没改就返304,让浏览器用本地缓存;改了就返200带新资源。

HTTPS和HTTP有啥区别?HTTPS为什么能保证安全?

答案:区别主要是“安全”——HTTP明文传输(数据能被中间截获篡改),HTTPS是HTTP加TLS/SSL加密,数据传的时候是密文。

HTTPS安全靠三步:

握手时,服务器发“证书”(由CA机构颁发,证明服务器是真的),浏览器验证证书没问题;

双方协商一个“对称加密密钥”(用非对称加密传这个密钥,防止密钥被偷);

后续传输数据都用这个对称密钥加密,既能保证数据不被偷看,也能验证数据没被篡改(有校验机制)。

三、实际应用题

开发中遇到跨域问题,是什么原因?怎么解决?

答案:跨域是浏览器的“同源策略”导致的——比如前端项目在http://localhost:8080,调用http://localhost:300

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档