HTTP请求的整个过程

网络 网络管理
HTTPweb浏览器和服务器之类的交互过程必须遵守的协议.他是tcp/ip中的一个应用协议。用来协议数据交换过程和数据本身的格式,主要的有HTTP/1.0和HTTP1.1.

1. HTTP简介

HTTPweb浏览器和服务器之类的交互过程必须遵守的协议.他是tcp/ip中的一个应用协议。用来协议数据交换过程和数据本身的格式,主要的有HTTP/1.0和HTTP1.1.

HTTP/1.0和HTTP/1.1都把TCP作为底层的传输协议。

HTTP请求的整个过程

HTTP客户首先发起建立与服务器TCP连接。一旦建立连接,浏览器进程和服务器进程就可以通过各自的套接字来访问TCP。如前所述,客户端套接字是客户进程和TCP连接之间的“门”,服务器端套接字是服务器进程和同一TCP连接之间的 “门”。客户往自己的套接字发送HTTP请求消息,也从自己的套接字接收HTTP响应消息。类似地,服务器从自己的套接字接收HTTP请求消息,也往自己 的套接字发送HTTP响应消息。客户或服务器一旦把某个消息送入各自的套接字,这个消息就完全落入TCP的控制之中。

TCP给HTTP提供一个可靠的数据传输服务;这意味着由客户发出的每个HTTP请求消息最终将无损地到达服务器,由服务器发出的每个HTTP响应消息最终也将无损地到达客户。我们可从中看到分层网络体系结构的一个明显优势——HTTP不必担心数据会丢失,也无需关心TCP如何从数据的丢失和错序中恢复出来的细节。这些是TCP和协议栈中更低协议层的任务。

TCP还使用一个拥塞控制机制。该机制迫使每个新的TCP连接一开始以相对缓慢的速率传输数据,然而只要网络不拥塞,每个连接可以迅速上升到相对较高的速率。这个慢速传输的初始阶段称为缓启动(slow start)。

需要注意的是,在向客户发送所请求文件的同时,服务器并没有存储关于该客户的任何状态信息。即便某个客户在几秒钟内再次请求同一个对象,服务器也不会响应说:自己刚刚给它发送了这个对象。相反,服务器重新发送这个对象,因为它已经彻底忘记早先做过什么。既然HTTP服务器不维护客户的状态信息,我们于是 说HTTP是一个无状态的协议(stateless protocol)。

2. 一个完整的HTTP请求过程

HTTP事务=请求命令+响应结果

HTTP事务=请求命令+响应结果

一次完整的请求过程:

(1)域名解析

(2)建立TCP连接,三次握手

(3)Web浏览器向Web服务端发送HTTP请求报文

(4)服务器响应HTTP请求

(5)浏览器解析HTML代码,并请求HTML代码中的资源(JS,CSS,图片)(这是自动向服务器请求下载的)

(6)浏览器对页面进行渲染呈现给客户

(7)断开TCP连接

责任编辑:赵宁宁 来源: IT技术后花园
相关推荐

2011-09-06 09:48:41

MTK平台

2024-01-02 09:19:15

kubernetes集群HTTP

2019-07-04 14:11:48

App StoreiOS应用开发

2017-03-23 15:05:50

HTTP缓存Cookie

2018-11-19 16:10:30

浏览器urlhttp

2017-03-23 14:51:21

HTTP缓存CDN缓存

2018-07-24 13:01:52

前端优化前端性能浏览器

2011-04-13 15:50:49

.htmHTTP请求处理

2024-04-15 16:11:33

C#HTTP请求.NET

2009-07-27 13:25:15

Postback程序处ASP.NET

2020-04-28 11:00:45

Go开源库HTTP

2021-07-27 14:50:15

axiosHTTP前端

2010-06-29 13:24:26

HTTP协议

2019-01-27 14:37:47

数据HTTP服务

2022-03-30 08:21:57

合并HTTP

2022-07-12 17:03:43

鸿蒙网络请求库

2021-10-28 09:36:12

高并发数据实践

2010-06-29 13:35:39

HTTP协议

2015-01-27 09:56:15

云开发云IDE软件开发

2023-06-28 11:36:41

点赞
收藏

51CTO技术栈公众号