网络

54 阅读3分钟

Http的请求有几种?

  • Get:用于请求获取指定资源,通常用于获取数据
    • 请求时,会把请求的参数附加在URL后面,存在安全隐患
    • 受URL长度限制,无法传输大量数据
    • 响应结果可以被浏览器缓存
    • 具有幂等性,多次请求得到的结果是相同的
  • Post:用于向服务器提交数据,通常用于提交表单数据或进行资源的创建
    • 请求时,将数据包含在请求体中,而不是直接放在URL中,提高了数据的安全性
    • 由于数据包含在请求体中,没有URL长度的限制,可以传输比Get请求更大的数据量
    • Post请求不是幂等的,多次请求可能会导致服务器状态变化
  • Put:向服务器更新指定资源,通常更新已存在的资源
    • 通常包含完整的资源内容,意味着服务器会在接收到请求后,完全用请求体中的数据替换原有资源
    • 如果该资源不存在,一般就会返回404错误
  • Delete:用于请求服务器删除指定资源
    • 具有幂等性,多次请求不会改变资源的状态
    • 执行Delete请求需要权限管理,因为它是对数据进行不可逆的操作
    • 服务器接收到请求后,会验证用户身份并校验是否有权执行删除,最终执行相应的删除操作,然后返回一个状态码表示请求结果
  • Head:类似于Get请求,但只返回资源的头部信息,用于获取资源的元数据,而不获取实际内容

Http和Https的区别?

Http协议

  • HTTP是超文本传输协议,是一种使用明文数据传输的网络协议
  • 被用在Web浏览器和服务器之间传递信息
  • 以明文的方式发送内容,不提供任何方式的数据加密
  • 传输的端口为80

Https协议

  • Http+SSL/TLS,即Http下加入 SSL 层,Https安全基础是SSL
  • Https协议基于SSL/TLS协议加密进行TCP传输,拿到的是密文
  • 传输的端口是443

区别

  1. Http是超文本传输协议,信息是明文传输,存在安全风险;HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输
  2. Http连接建立相对简单,TCP 三次握手之后便可进行 HTTP 的报文传输;而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可以进入加密报文传输
  3. 两种默认的端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443
  4. HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的