一次完整的http请求过程

本文详细介绍了HTTP通信过程中的七个关键步骤,包括建立连接、发送请求、接收响应及断开连接等。重点阐述了TCP三次握手、HTTP请求命令及头信息、服务器回应流程等内容。

一个完整的HTTP过程包括建立连接、数据传输、断开连接等七个步骤。
这里写图片描述

下面详细介绍一下每一步

  1. TCP建立连接
    HTTP协议是基于TCP协议来实现的,因此首先就是要通过TCP三次握手与服务器端建立连接,一般HTTP默认的端口号为80;
  2. 浏览器发送请求命令
    在与服务器建立连接后,Web浏览器会想服务器发送请求命令

  3. 浏览器发送请求头消息
    在浏览器发送请求命令后,还会发送一些其它信息,最后以一行空白内容告知服务器已经完成头信息的发送;

  4. 服务器应答
    在收到浏览器发送的请求后,服务器会对其进行回应,应答的第一部分是协议的版本号和应答状态码;

  5. 服务器回应头信息
    与浏览器端同理,服务器端也会将自身的信息发送一份至浏览器

  6. 服务器发送数据
    在完成所有应答后,会以Content-Type应答头信息所描述的格式发送用户所需求的数据信息

  7. 断开TCP连接
    在完成此次数据通信后,服务器会通过TCP四次挥手主动断开连接。但若此次连接为长连接,那么浏览器或服务器的头信息会加入keep-alive的信息,会保持此连接状态,在有其它数据发送时,可以节省建立连接的时间;

    这里写图片描述

一个完整HTTP请求包括以下几个部分: 1. 起始行:起始行包括请求方法、请求的URL和使用的协议版本。例如,GET /index.html HTTP/1.1。 2. 头部信息:头部信息包括一系列的键值对,用来传递请求的附加信息。常见的头部信息包括User-Agent(用户代理,用于标识浏览器或客户端)、Host(请求的主机名)、Content-Type(请求体的类型)等。 3. 空行:空行用于分隔头部信息和请求体。 4. 请求体:请求体包含了请求的具体内容,例如表单数据或上传的文件。 综上所述,一个完整HTTP请求的格式为: 起始行 头部信息 空行 请求体 引用\[1\] #### 引用[.reference_title] - *1* *3* [一完整HTTP事务是怎样的过程](https://blog.youkuaiyun.com/wang35235966/article/details/77863455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [一次完整http请求过程](https://blog.youkuaiyun.com/weixin_48520816/article/details/125406258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值