HTTP 协议的优点和缺点

9 阅读2分钟

什么是HTTP

  • 定义:超文本传输协议(Hypertext Transfer Protocol)是 Web 浏览器和 Web 服务器之间传输数据的协议。默认使用 80 端口。它使用 TCP 作为传输层协议,保证数据传输的可靠性。
  • 作用:用于客户端和服务器之间的通信,实现资源的获取和传输。
  • 工作原理:基于请求-响应模式,客户端发送请求给服务器,服务器返回响应给客户端。
  • 组成部分:
    • 请求头:包含关于请求或响应的附加信息,如内容类型、编码方式等。
    • 请求行:包含请求方法、URL 和 HTTP 版本等信息。
    • 状态行:包含响应的状态码和描述信息。
  • 常见应用场景:
    • 网页浏览:通过 HTTP 协议获取网页内容并展示给用户。
    • 文件下载:使用 HTTP 协议从服务器下载文件到本地。
    • 表单提交:通过 HTTP 协议将用户输入的数据提交给服务器处理。
  • 与 HTTPS 协议的区别:
    • 主要区别:加密传输、数字证书等。
    • 各自的优缺点比较:HTTPS 更安全,但性能相对较慢;HTTP 性能较好,但安全性较差。
  • HTTP 协议的安全性问题:
    • 常见的安全漏洞,如中间人攻击、数据篡改等。
    • 防范安全问题的方法,如使用HTTPS、验证数字证书等。

优点

  • 简单

    客户向服务器请求服务时,只需传达请求方法和路径。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

  • 灵活

    HTTP 允许传输任意类型的数据对象。正在传输的类型有 Content-Type 加以标记。

  • 无连接

    无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。

  • 无状态:

    HTTP 协议是无状态协议,这里的状态是指通信过程的上下文信息。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能会导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。

  • 支持客户端/服务器模式。

  • 可扩展

缺点

  • 无状态

    HTTP 是一个无状态的协议,HTTP 服务器不会保存关于客户的任何信息

  • 明文传输不安全

    协议中的报文使用的是文本形式,这就直接暴露给外界,不安全

  • 不支持多路复用

    通信使用明文(不加密),内容可能会被窃听;不验证通信方的身份,因此有可能遭遇伪装;证明报文的完整性,所以有可能已遭篡改