HTTP
什么是HTTP
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。当时选择使用HTTP协议,是因为它使开发和部署非常地直截了当。
如何访问web应用
Web访问的一般流程如下:
-
用户发送请求:用户在浏览器中输入URL或点击链接,发送请求给服务器。
-
DNS解析:浏览器根据URL中的域名进行DNS解析,获取域名对应的IP地址。
-
建立TCP连接:浏览器使用HTTP协议与服务器建立TCP连接。这个过程涉及TCP三次握手,确保双方建立起可靠的连接。
-
发起HTTP请求:浏览器向服务器发送HTTP请求。请求中包括请求行(请求方法,URL,HTTP协议版本等)、请求头部(包括User-Agent、Cookie等)和请求体(可选,如在上传文件时)。
-
服务器处理请求:服务器接收到请求后进行处理。处理的方式可以是查询数据库、执行业务逻辑处理等。服务器可能会生成动态内容或从文件系统中获取静态内容,并将处理结果返回给浏览器。
-
返回HTTP响应:服务器生成HTTP响应,包括响应行(HTTP协议版本,状态码等)、响应头部(包含响应数据类型、响应长度等)和响应内容(服务器返回的实际数据,如HTML文档、图片文件等)。
-
接收响应内容:浏览器接收到服务器返回的HTTP响应后,开始解析响应内容。根据响应头部中的Content-Type判断响应内容的类型。如果是HTML文档,则进行HTML解析,并下载显示其中的资源(如JavaScript、CSS等)。
-
渲染页面:浏览器根据HTML、CSS和JavaScript对响应内容进行解析和渲染。将网页内容呈现给用户,包括文本、图片、链接等。
-
断开TCP连接:当页面加载完毕后,浏览器和服务器断开TCP连接。这个过程使用了TCP四次挥手,确保双方安全关闭连接。
HTTP协议内部操作规程
HTTP定义的事务处理由四步组成
- 客户端与服务器建立连接
- 客户端向服务器发送请求
- 服务器向客户端回复响应
- 断开连接