HTTP 相关面试题汇总

我这里整理了几个比较经典的 HTTP 面试题,希望大家看后有所收获。

但是面试题只能让我们知其然,学习不仅仅是为了面试,所以我们还要做到知其所以然,强烈建议大家先看下 以下几篇 HTTP 系列文章。

数据在网络中如何传输的

当我们在浏览器访问某个网址时,这背后会发生什么呢?

一文了解 HTTP

HTTP 报文详解

为什么 HTTPS 比HTTP 更安全?HTTPS如何保证数据传输安全性

相信你看完这几篇文章后再来看下面这些面试题,会更能理解整个 HTTP 知识点,这样即使你没有看我这归纳的几篇面试题,也可以做到游刃有余。

HTTP 1.0 和 HTTP 1.1 的主要区别是什么?

  1. 长连接: HTTP/1.0 不支持长连接,使用的是短连接,也就是说每次请求都要重新建立连接,HTTP 是基于 TCP/IP 协议,所以每次都需要进行三次握手和四次挥手来建立连接和断开,开销会比较大。

    HTTP/1.1 支持长连接,长连接默认是开启的,通过报文头 Connection: keep-alive 这个来设置。

  2. 新增错误状态响应码及请求方法:HTTP/1.1 增加了增加了OPTIONS,PUT, DELETE, TRACE, CONNECT 这些 Request方法,同时新增了24个错误状态响应码,如 409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

  3. 新增 HOST域:HTTP/1.1在 request 消息头多了一个 HOST 域,这个是必传的,HTTP/1.0 没有这个域。

    如果请求消息中没有就会报告一个错误(400 Bad Request)。

  4. 带宽优化:HTTP/1.0 中存在一些浪费带宽的现象,例如客户端只需要资源的一部分,服务器会将整个资源都返回回来。

    HTTP/1.1 在请求中引入了 range 报文头字段,致辞只请求资源的某个部分。

  5. 缓存处理:在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。

HTTP 和 HTTPS 的区别

  1. 端口:HTTP 默认使用的是 80 端口,HTTPS 默认使用的是 443 端口。
  2. 安全性:HTTP 协议所有传输都是明文传输,信息容易被遭到窃取,HTTPS 加了 SSL/TLS 协议,所有的传输内容经过加密及安全认证,保证了数据传输的安全性。

URI 和 URL 的区别是什么?

  1. URI 是统一资源标志符,可以唯一标识一个资源。

  2. URL 是统一资源定位符,可以提供该资源的路径,它相当于一种具体的 URI,它即能标识一个资源,也能指明这个资源的具体路径。

    可以这样比喻,URI 相当于你的身份证号,URL 相当于你的家庭住址,根据你的家庭住址及名字就能定位你这个具体的人。

各种协议与 HTTP 协议之间的关系

各种协议与HTTP协议之间的关系

HTTP 各种 响应状态码

状态码

具体的响应状态码不再展开,大家可以自行去简单了解下。但上图每种类别的状态码需要牢记。

cookie 和 session 的区别

Cookie 和 Session 都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。

Cookie 一般用来保存用户信息 比如 ① 我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;② 一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie 中,下次登录的时候只需要根据 Token 值来查找用户即可(为了安全考虑,重新登录一般要将 Token 重写);③ 登录一次网站后访问网站其他页面不需要重新登录。Session 的主要作用就是通过服务端记录用户的状态。 典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了。

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。

Cookie 存储在客户端中,而 Session 存储在服务器上,相对来说 Session 安全性更高。如果要在 Cookie 中存储一些敏感信息,不要直接写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员蛋蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值