当前位置: 首页 > news >正文

HTTP 请求流程

HTTP 的请求流程包括地址解析、封装 HTTP 数据包、封装 TCP 包、建立 TCP 连接、客户端发送请求、服务端响应、服务端关闭 TCP 连接,流程如下:

  1. 地址解析:通过域名系统 DNS 解析服务器域名从而获得主机的 IP 地址。例如客户端的浏览器请求:http://localhost.com:8080/index.html,则可从中分解出协议名、主名、端口、对象路径等
  2. 封装 HTTP 数据包:解析协议名、主机名、端口、对象路径等并结合本机自己信息封装成一个 HTTP 请求数据包
  3. 封装 TCP 包:将 HTTP 请求数据包进一步封装成 TCP 数据包
  4. 建立 TCP 连接:基于 TCP 的三次握手机制建立 TCP 连接
  5. 客户端发送请求:在建立连接后,客户端发送一个请求给服务端
  6. 服务端响应:服务端在接收到请求后,结合业务逻辑进行数据处理。然后向客户端返回相应的响应信息。在响应信息中包含状态行、协议版本号,成功或错误的代码、消息体等内容
  7. 服务端关闭 TCP 连接:服务端在向浏览器发送请求响应数据后关闭 TCP 连接。但如果浏览器或者服务端在消息头中加入了 Connection:keep-alive,则 TCP 连接在请求响响应数据发送后仍然保持连接状态,在下一次请求中浏览器可以继续使用相同的连接发送请求。采用 keep-alive 方式不但减少了请求响应的时间,还节约了网络带宽和系统资源

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LeetCode 234 - 回文链表 C++ 实现
  • 设计模式之结构型模式
  • 深入浅出:理解TCP传输控制协议的核心概念
  • Go 语言错误处理
  • keepalive原理详解及应用
  • Windows采用VS2019实现Open3D的C++应用
  • ~Keepalived高可用集群~
  • CAPL使用结构体的方式组装一条DoIP车辆识别请求报文(payload type 0x0002)
  • [Datawhale AI夏令营 2024 第四期] 从零入门大模型微调之旅的总结
  • wordpress网站“ERR_CONNECTION_REFUSED”错误
  • string模拟
  • leetcode 21-30(2024.08.16)
  • P2460[SDOI2007] 科比的比赛
  • PyTorch--深度学习
  • 开源通用验证码识别OCR —— DdddOcr 源码赏析(一)
  • 【译】理解JavaScript:new 关键字
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JS字符串转数字方法总结
  • Laravel 中的一个后期静态绑定
  • Selenium实战教程系列(二)---元素定位
  • Shell编程
  • SQLServer之创建数据库快照
  • 复杂数据处理
  • 关于Flux,Vuex,Redux的思考
  • 浏览器缓存机制分析
  • 浅谈Golang中select的用法
  • 实战|智能家居行业移动应用性能分析
  • 算法-插入排序
  • 原生Ajax
  • 再次简单明了总结flex布局,一看就懂...
  • AI算硅基生命吗,为什么?
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​力扣解法汇总946-验证栈序列
  • # Java NIO(一)FileChannel
  • ######## golang各章节终篇索引 ########
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #1014 : Trie树
  • #pragma once
  • (AngularJS)Angular 控制器之间通信初探
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)换源+apt-get基础配置+搜狗拼音
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (五)Python 垃圾回收机制
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .gitignore文件设置了忽略但不生效
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • @Autowired注解的实现原理