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

HTTP(超文本传输协议)

HTTP是万维网通信的基础构成,是一个简单的请求相应协议,基于TCP之上80号端口

通信原理

DNS解析

将域名甩个DNS服务器解析,将域名化为IP访问

建立TCP连接

如图,客户端先发送一个sys置位seq为x(任意值)的报文给服务器端,待服务器接收以后发送一个sys置位,seq为y,Ack=x+1(sys置位表建立连接,Ack表期望收到的序列号),客户端收到后回复Ack=y+1,seq=x+1的报文进行应答,至此,TCP连接完成

HTTP请求

URL:统一资源定位器,用于标识网络资源所在位置,即web地址

HTTP响应

即HTTP消息

 HTTP 的版本

HTTP/0.9

提出概念,只能进行文本间交互,由于无法进行内容的协商,在双发的握手和协议中,并没有规定双发的内容是什么,也就是图片是无法显示和处理的

HTTP/1.0

引入基本的请求-响应模型。
每次请求都会新建一个连接,请求结束后关闭连接,效率较低。(RFC1945)

HTTP/1.1

默认支持 持久连接(Keep-Alive),提升了性能。
引入了 管线化(Pipelining),允许客户端在等待响应的同时发送多个请求(虽然实际应用较少)。(RFCRFCRFC 2616)

HTTP/2.0

基于二进制帧传输数据,替代了传统的文本格式。
支持 多路复用(Multiplexing),在单个连接上同时传输多个请求和响应,避免了 HTTP/1.x 的“队头阻塞”问题。
引入了 服务器推送(Server Push),允许服务器主动向客户端发送资源,减少延迟。(RFC7540)

HTTP/3.0

基于 QUIC 协议(使用 UDP),进一步提升传输效率和可靠性。
解决了 TCP 的一些固有问题,如握手延迟和连接迁移问题。(RFC9114)

状态码

1xx:信息性相应

2xx:成功

3xx:重定向错误

4xx:客户端错误

5xx:服务器错误

常见代码

200:OK,一般出现于GET和POST请求

201:Create,成功创建一个资源POST或者PUT

204:NO connect,创建成功,无内容返回

301:Moved Permanently,资源永久重定向到新URL

302:Found,资源暂时重定向到新 URL

400:Bad request,客户端存在语法错误

401Unauthorized,需要身份验证

403:Forbidden,服务器禁止访问

404:Not Found,资源不存在

500:Internal Server Error,服务器内部出错

502:Bad Gateway,网关收到无效响应

503:Service Unavailable,服务器超载或维护中,暂时不可用

http://www.lryc.cn/news/498752.html

相关文章:

  • etcd-v3.5release-(3)-readIndexRead
  • IPv6 NA RTR/SOL/OVR标志位,单播多播选择,ndppd代理和kernel配置
  • C语言程序设计P5-4【应用函数进行程序设计 | 第四节】——知识要点:数组作函数参数
  • PostgreSQL数据库连接:psqlODBC驱动安装与配置实战指南
  • 【NLP 8、normalization归一化函数:sigmoid、softmax】
  • 鸿蒙ArkTS 与安卓Android-底层逻辑对比
  • 第八节、Bresenham直线插补【51单片机-TB6600驱动器-步进电机教程】
  • 唇形同步视频生成工具:Wav2Lip
  • 旅游管理系统的设计与实现
  • burp常用机漏洞测试理论
  • TCP/IP 和 UDP
  • FastAPI解决跨域报错net::ERR_FAILED 200 (OK)
  • git如何新建分支并提交?
  • 使用 LlamaFactory 结合开源大语言模型实现文本分类:从数据集构建到 LoRA 微调与推理评估
  • Python基础学习总结篇
  • 8. Debian系统中显示屏免密码自动登录
  • ubuntu安装nginx并设置开机自启动
  • SQLServer中使用ISNULL替换为指定的替换值
  • 深入浅出:PHP函数的定义与使用
  • C++知识整理day4内存管理——new和delete详解
  • 部署项目报错
  • 专业140+总分420+上海交通大学819考研经验上交电子信息与通信工程,真题,大纲,参考书。博睿泽信息通信考研论坛,信息通信考研Jenny
  • 电子信息工程自动化 单片机自动门控制系统设计
  • T C P
  • PDF与PDF/A的区别及如何使用Python实现它们之间的相互转换
  • 【Linux课程学习】: 进程地址空间,小故事理解虚拟地址,野指针
  • 解决el-select数据量过大的3种方法
  • 速盾:高防cdn预热指定url就只刷新这个吗?
  • aarch64-linux-gnu-g++在windous不能用
  • 01_Node.js入门 (黑马)