0
点赞
收藏
分享

微信扫一扫

5年测试面试要20K,面试三个问题把我打发走了···

zhaoxj0217 2023-06-09 阅读 33

文章目录


HTTP 是什么

HTTP 发展历程

HTTP 1.0

1.0 版本有个很大的缺点:TCP连接不可复用,每进行一次 HTTP 通信,都需要进行一次TCP 连接、HTTP 通信、断开 TCP 连接流程,如下图,两次 HTTP 通信就要进行两个完整的流程

在这里插入图片描述

HTTP 1.1

为了解决1.0版本的TCP连接不可复用问题,在1.1版本中,提出了 长连接机制, 在一个 TCP 连接里可以进行多次 HTTP 通信,如下图。

在这里插入图片描述

但是1.1 版本和 1.0 都有个很大的问题:队头阻塞,由于服务的响应是串行的,前一个请求若未响应,会阻塞后一个响应的返回

HTTP 2.0

HTTP2.0 对性能做出了极大的改进主要包括:二进制分帧、头部压缩、服务端推送、多路复用

  • 二进制分帧
  • 头部压缩
  • 服务端推送
  • 多路复用

常用方法

  • GET :仅用作数据的读取,请求参数以query的形式拼接到url
  • POST :创建新资源或修改现有资源,请求参数以body的形式传递
  • PUT :PUT 在能力上和 POST 类似,区别在于 PUT 的 URI 指向是具体的某个资源,而不能指向资源集合。
  • DELETE:用于删除指定的资源

头部信息 (Headers)

请求头(request Headers

  • Accept: 浏览器可接受的数据格式
  • Accept-encoding: 浏览器可接受的压缩算法,如gzip(服务器压缩,客户端解压,让传输的资源变小,速度更快)
  • Accept-Language: 浏览器可接收的语言,如zh-CN
  • Connect:keep-alive 一次TCP连接重复使用
  • Cookie同域每次请求资源都会把cookie带上
  • Host请求的域名
  • User-agent:简称UA,浏览器信息,标识是什么浏览器,是什么系统,供给服务器分析
  • Content-type:发送数据的格式(多存在于post请求中),如一般json数据为application/json ,图片或文件为multipart/form-data

响应头(response Headers)

  • Content-type:返回数据的格式,如application/json(json),text/html(html),text/css(css)、text/javascript(javascript)image/png

  • Content-length:返回数据的大小,多少字节

  • Content-Encoding返回数据的压缩算法,如gzip

  • Set-Cookie服务端需要通过该字段来修改浏览器中的cookie

状态码

  • 200 OK,标识客户端的请求已经被服务器正确处理
  • 301:永久性重定向,表示资源已被分配了新的 URL

  • 302:临时性重定向,表示资源临时被分配了新的 URL

  • 304,表示服务器校验后发现资源没有改变,提醒客户端直接走缓存来取资源

  • 400:请求报文存在语法错误

  • 403:对请求资源的访问被服务器拒绝(多半是没权限)

  • 404,资源不存在,可能是你的路径不对,也可能是这个资源在服务端已经被下掉了

  • 500:服务器在接受请求后进行处理的过程中,发生了内部错误

  • 502:网关错误

  • 504:网关超时

HTTP无状态理解:cookie与session

如果想维持状态信息,需要使用cookiesession

  • cooike

客户端第一次向服务器端发送请求时是没有cookie的,请求后服务器端会在cookie中存入一些数据。下次在访问相同的服务器就会带上cookie中的数据。

  • session

实际上是一个对象,存储在服务器端的内存中,在session对象中也可以存储多条数据,每一条数据都有一个sessionid作为唯一标识。

  • 以登录逻辑为例

1、 客户输入账号密码进行登录,服务器端进行验证,验证成功则生成sessionId,并且在session对象中存储当前用户信息。

2、 服务器端将sessionId写入客户端cookie中,当客户端下次访问服务器端时cookie会被自动发送给服务器端。

3、 服务器端在 cookie 中拿到 sessionId 然后在服务器端的 session 对象中查找 sessionId 进行验证,验证成功说明用户是登陆状态,则可以为其响应只有在登陆状态才能响应的数据。

总结

  • HTTP 是什么

  • HTTP 发展历程

  • 常用方法

  • 头部信息 (Headers)

  • 状态码

  • HTTP无状态理解:cookie与session

举报

相关推荐

0 条评论