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

HTTP请求过程 part-1

http请求过程

从源端到终端,请求报文和响应报文要经过四层关口,才可以传输,分为:

  • 应用层 (如http)
  • 传输层 (如TCP)
  • 网络层 (如IP)
  • 链接层 (设备驱动程序以及网卡)

协议

经过约定,使通信两端以相同规则存储,接收,发送数据

分层初探

应用层

应用程序将数据以相应规则进行包装,发给传输层【HTTP,FTP,SMTP,SNMP】

传输层

将应用层传来的数据进行分组,标记,交给网络层【TCP,UDP】

分组和标记是为了保证顺序及完整性

网络层

以最快的方式将数据发送到目标终端【IP,ICMP,IGMP】

链路层

为网络层发送和接收数据单元【ARP,RARP】

[!IMPORTANT]

在这整个过程中,数据在发送及接收时,需要进行封装和分用的操作

  • 封装:报文==>向下层,添加协议标识【此后递归操作到最底层】
  • 分用:去掉报文首部(协议标识)==>向上层【递归到最上层直至接收】

HTTP应用层

报文分类

  • 用户触发交互的行为数据
  • 服务端对此做出的响应

报文作为了客户端和服务端沟通的载体

起始行

  • 请求:方法+请求URL+协议版本
  • 响应:协议版本+状态码+描述文本
方法的分类
方法含义有无主体
GET从服务端获取资源
HEAD只获取资源头部
POST向服务端发送数据

…还有其他的没有列出来

状态码的分类
范围已定义范围含义
100~199100~101信息提示
200~299200~206成功
300~399300~305重定向
400~499400~415客户端错误
500~599500~505服务端错误

首部

形式为键值对==>为了协商具体行为

首部可分类为

请求响应通用实体扩展
  • 请求为告诉服务端的信息
  • 响应为告诉客户端的信息
  • 通用为大家都可用到的,如时间相关的信息
  • 实体可有在报文实体中数据的类型,长度等等 【可有可无】
  • 扩展为了在一些对应传输中进行一些个性化的操作

http://www.kler.cn/a/324287.html

相关文章:

  • [Android]相关属性功能的裁剪
  • Vue中的导航守卫有哪三种?分别有什么作用
  • 从零开始学习 sg200x 多核开发之 uboot saveenv 功能使能
  • Oracle Instant Client 23.5安装配置完整教程
  • Python 使用Django进行单元测试unittest
  • 2024山西省网络建设运维第十八届职业院校技能大赛解析答案(5. nginx 和 tomcat 服务)
  • 高通Android 12 音量API设置相关代码
  • (undone) MIT6.824 Lecture1 笔记
  • OpenGL ES 绘制一个三角形(2)
  • zookeeper 服务搭建(集群)
  • 解决SpringBoot 3.3.x集成Micrometer和Prometheus,导致项目阻塞,无法启动
  • 演示:基于WPF的DrawingVisual开发的频谱图和律动图
  • Meta首款多模态Llama 3.2开源:支持图像推理,还有可在手机上运行的版本 | LeetTalk Daily...
  • Python连接Kafka收发数据等操作
  • [leetcode]53_最大子数组(序列)和
  • 2024年空间计算/XR的现状:双子座阶段的探索与展望
  • 关于电商API接口接入及其相关应用分析【主流电商API接口】
  • 音视频处理工具FFmpeg与Java结合的简单使用
  • 【计算机网络 - 基础问题】每日 3 题(二十七)
  • Stable Diffusion绘画 | Checkpoint Merger 模型融合
  • 如何区分这个ip是真实ip,不是虚假的ip
  • 论文阅读 - SWATTING Spambots: Real-time Detection of Malicious Bots on X
  • RabbitMQ的高级特性-延迟队列
  • 个人计算机与网络的安全
  • 初探shell与bash使用指南
  • spring cloud Gateway网关