HTTP协议
什么是HTTP:
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议。它是一种客户端-服务器模型的协议,用于在Web浏览器和Web服务器之间进行通信。HTTP协议采用了无状态的请求-响应模式,通过请求-响应的交互方式,实现了客户端向服务器请求资源,服务器处理请求并返回响应的功能。
基本特点:
- 简单性:HTTP协议使用简单的文本格式,易于阅读和编写。
- 无连接:HTTP协议是无连接的,也就是说每个请求和响应都是独立的,服务器不会保留任何关于客户端的状态信息。
- 无状态:HTTP协议是无状态的,也就是说服务器不会在多个请求之间保留任何关于客户端的信息。这意味着每个请求都是独立的,服务器无法根据之前的请求来处理当前的请求。
- 可扩展性:HTTP协议的头部可以扩展,允许添加额外的字段,从而实现协议的扩展和灵活性。
发展历程:
- HTTP/0.9:最初的HTTP协议是在1991年发布的,它只支持获取静态的HTML文档,并且没有定义任何头部信息。
- HTTP/1.0:在1996年发布了HTTP的第一个正式版本。它引入了头部字段(Header Fields)和状态码(Status Codes),并支持发送任意类型的文件。
- HTTP/1.1:在1997年发布了HTTP的重要更新版本。它引入了持久连接(Persistent Connections)、管道化(Pipelining)和虚拟主机(Virtual Hosting)等特性,提高了性能和效率。
- HTTP/2:在2015年发布了HTTP的下一代协议,旨在解决HTTP/1.1的性能瓶颈。HTTP/2采用二进制格式传输数据、多路复用(Multiplexing)、头部压缩(Header Compression)等技术,提供了更快的页面加载速度和更高的效率。
- HTTP/3:HTTP/3是目前正在开发中的版本,它采用了QUIC(Quick UDP Internet Connections)作为传输协议,提供更快的连接建立和恢复,并通过使用UDP协议来减少延迟,提升性能。
常见场景及实际应用:
- Web浏览器和Web服务器之间的通信:HTTP协议是Web浏览器和Web服务器之间进行通信的基础,通过HTTP协议,浏览器可以向服务器请求Web页面、图片、视频等资源。
- RESTful API:HTTP协议以其简单、灵活的特点,被广泛应用于构建RESTful API。开发者可以使用HTTP协议的GET、POST、PUT、DELETE等方法来实现对资源的操作。
- 数据传输和文件下载:HTTP协议可以用于传输数据,例如通过HTTP下载文件。
- 身份验证与授权:HTTP协议支持基本的身份验证和授权机制,可以用于控制用户对特定资源的访问权限。
场景分析:
静态资源方案:缓存+CDN+文件名hash,通过用户就近性和服务器负载的判断,CDN确保内容以一种高效的方式为用户的请求提供服务, HTTP 协议拓展 - 通信方式:1.长链接 2.管道化 3.多路复用 4.头部压缩 5.服务器推送等等
我通过学习这门课程,只能大概听懂其中的皮毛,不懂的地方有许多需要借助百度查询才能知道,并且,理论的东西很多,以后还需实践方能深入了解