HTTP协议

261 阅读3分钟

一、get 和 post有什么区别?

1.请求参数:

  • get:直接附加在url后面,问号分隔,多参数用&链接,请求长度有限制
  • post:参数在请求体中,请求长度无限制

2.安全性:

  • get: 参数暴露在 URL 中,容易被他人获取,安全性低,适合获取数据。
  • post:参数在请求体中,相对安全,适合提交敏感信息,如登陆密码等

3.幂等性:

  • get:多次请求相同的URL,得到的结果一致。
  • post:多次提交可能会导致不同的结果,例如多次提交订单会创建多个订单

4.缓存:

  • get:请求结果通常会被浏览器缓存,因为幂等且安全
  • post:请求一般不会被缓存

5.应用场景:

  • get:常用于获取资源 如获取数据列表,查询数据
  • post:通常用于创建或修改资源 如提交表单、上传文件等

二、HTTP2 相对于 HTTP1.X有什么优势和特点

1.多路复用:

  • http2:允许在同一个连接中并行处理和响应多个请求
  • http1:每个请求响应是串行的,同一时间只能处理一个请求

2.头部压缩:

  • https使用了头部压缩技术,减少了头部数据的传输量,提高传输效率

3.服务器推送:

  • http2服务器可以主动向客户端推送资源,无需等待客户端的请求,减少客户端请求次数,加快页面的加载速度

4.二进制分帧:

  • http2:将数据分割成更小的帧,并采用二进制格式传输,提高了数据的解析效率和传输性能
  • https:是文本格式,解析效率低

5.流量控制:

提供流量控制机制,允许客户端和服务器端对数据的发送和接收进行控制,避免发送数据过快造成拥堵,提高整个系统的稳定性

三、HTTPS 是怎么保证安全的,为什么比http安全

1.加密传输:

使用加密歇息对数据进行加密,在数据传输过程中,信息会被加密成密文。

2.身份认证机制:

要求服务器向客户端提供数字证书,确认服务器身份真实性,防止用户访问到假冒网站

3.数据完整性保护:

通过消息认证码等技术确保数据在传输过程中未被篡改。

四、请求状态码

五、post为什么会多发送一次option请求

是http的一种特性叫预检请求,主要发生在跨域请求中,针对于一些不安全或者自定义请求头的请求 目的是检查服务器是否允许来自不同源请求进行操作。

六、http的请求和响应报文分别是什么样的?

1.请求报文:请求行 请求头部 空行 请求正文组成

  • 请求行:请求方法 URL HTTP版本号
  • 请求头:有一系列键值对组成,包含了与请求相关的信息
  • 空行:分割头部和正文
  • 请求正文:包含需要发给服务器的信息,get一般没有正文

2.响应报文:响应行 响应头 响应正文

  • 响应行:http版本号 响应码 响应码描述
  • 响应头:包含了与响应相关的信息
  • 响应正文:包含服务器返回给客户端的数据,一般为html内容、图片数据、JSON格式的响应结果等

七、http的keep-alive是干什么的?

  • 能让客户端和服务器之间的连接保持一段时间不关闭,这样下次在请求的时候就不用重新建立连接了,能节省时间和资源,让网页加载更快。
  • 具体实现:在http1.1协议里,默认就是开启keep-alive的,服务器响应请求时,会在http头里加上connection:keep-alive字段。