什么是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 服务器不会保存关于客户的任何信息
-
明文传输不安全
协议中的报文使用的是文本形式,这就直接暴露给外界,不安全
-
不支持多路复用
通信使用明文(不加密),内容可能会被窃听;不验证通信方的身份,因此有可能遭遇伪装;证明报文的完整性,所以有可能已遭篡改