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

http进一步认识

好久不见各位,今天为大家带来http协议的进一步认识

文章目录

  • 👀http协议的认识
  • 👀新的改变

👀http协议的认识

http协议经历了三个版本的演化,HTTP0.9是第一个版本的协议,它的组成极其简单,只涉及到简单的发送get请求,只允许客户端发送get请求,且不支持请求头,由于没有协议头,造车了http0.9协议只支持一种内容,即纯文本,但是网页仍然支持html语言格式化,同时无法插入图片。
http具有典型的无状态性,每一个事务都是独立处理的,什么是无状态呢? 无状态是指协议对于事务处理没有记忆功能。 缺少状态意味着,假如后面的处理需要前面的信息,则前面的信息必须重传,这样可能导致每次连接传送的数据量增大。 另一方面,在服务器不需要前面信息时,应答就较快。它的请求和连接过程如下
一次HTTP0.9的传输首先要建立一个由客户端到web服务器的tcp连接,由客户端发起一个请求,然后由web服务器返回页面内容,然后连接会关闭。如果请求的页面不存在,也不会返回任何错误

2、HTTP 1.0

HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用。相对于HTTP 0.9 增加了如下主要特性:
请求与响应支持头域
响应对象以一个响应状态行开始
响应对象不只限于超文本
开始支持客户端通过POST方法向Web服务器提交数据,支持GET、HEAD、POST方法
支持长连接(但默认还是使用短连接),缓存机制,以及身份认证,

3.HTTP 1.1
这个是http协议的第三个版本,是目前使用的最广泛的协议版本 ,HTTP 1.1引入了许多关键性能优化:keepalive连接,chunked编码传输,字节范围请求,请求流水线等

  • Persistent Connection(keepalive连接)
    允许HTTP设备在事务处理结束之后将TCP连接保持在打开的状态,一遍未来的HTTP请求重用现在的连接,直到客户端或服务器端决定将其关闭为止。

在HTTP1.0中使用长连接需要添加请求头 Connection: Keep-Alive,而在HTTP 1.1 所有的连接默认都是长连接,除非特殊声明不支持( HTTP请求报文首部加上Connection: close )

  • chunked编码传输
    该编码将实体分块传送并逐块标明长度,直到长度为0块表示传输结束, 这在实体长度未知时特别有用(比如由数据库动态产生的数据)

  • 字节范围请求
    HTTP1.1支持传送内容的一部分。比方说,当客户端已经有内容的一部分,为了节省带宽,可以只向服务器请求一部分。该功能通过在请求消息中引入了range头域来实现,它允许只请求资源的某个部分。在响应消息中Content-Range头域声明了返回的这部分对象的偏移值和长度。如果服务器相应地返回了对象所请求范围的内容,则响应码206(Partial Content)

  • Pipelining(请求流水线)

👀新的改变

HTTP 1.1还新增了如下特性:
1.请求消息和响应消息都应支持Host头域
2.新增了一批Request method,增加了OPTIONS,PUT, DELETE, TRACE, CONNECT方法,引入了实体标签,一般被称为e-tags,新增更为强大的Cache-Control头。

HTTP 2.0是下一代HTTP协议,目前应用还非常少,这里就不做介绍了~

相关文章:

http进一步认识

好久不见各位,今天为大家带来http协议的进一步认识 文章目录 👀http协议的认识👀新的改变 👀http协议的认识 http协议经历了三个版本的演化,HTTP0.9是第一个版本的协议,它的组成极其简单,只涉…...

grafana docker安装

grafana docker安装 Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。 Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开…...

【Kubernetes】初识k8s--扫盲阶段

文章目录 1、k8s概述2、为什么要有k8s2.1 回顾以往的应用部署方式2.2 容器具有的优势 3、k8s能带来什么 1、k8s概述 kubernetes是一个可移植、可扩展的开源平台,用于管理 容器化 的工作负载和服务,可促进申明式配置和自动化。kubernetes拥有一个庞大且快…...

“01”滴答“摩尔斯电码”加密解密单个字符

“01”替换滴嗒“.-”“摩尔斯电码”字符,加密解密键盘输入的单个字符。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》&a…...

P3817 小A的糖果

Portal. 贪心。 注意到这里的盒子不会被删除,只会改变盒子的值。问题立刻简单化了。对于一组相邻的糖果个数和大于 x x x 的盒子组,优先吃掉靠后的盒子。 证明正确性也很显然,因为减少后面的盒子的糖果数可以使得后面的情况更优。 #incl…...

Yolov8目标识别与实例分割——算法原理详细解析

前言 YOLO是一种基于图像全局信息进行预测并且它是一种端到端的目标检测系统,最初的YOLO模型由Joseph Redmon和Ali Farhadi于2015年提出,并随后进行了多次改进和迭代,产生了一系列不同版本的YOLO模型,如YOLOv2、YOLOv3、YOLOv4&a…...

HandlerMethodArgumentResolver方法参数解析器支持多用户

1、概述 HandlerMethodArgumentResolver,中文称为方法参数解析器,是Spring Web(SpringMVC)组件中的众多解析器之一,主要用来对Controller中方法的参数进行处理。 使用场景 在一般的接口调用场景下,每次调用Controller都需要检查请求中的token信息,并根据token还原用户信息…...

【Linux】 man命令使用

介绍 man命令是Linux下最核心的命令之一。而man命令也并不是英文单词“man”的意思,它是单词manual的缩写,即使用手册的意思。 man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是,不仅可以查看Lin…...

同一个数据库服务器进行数据表间的数据迁移-MySQL

同一个数据库服务器进行数据表间的数据迁移 一、相同结构的表数据迁移/备份/导入到同一MySQL的某个库的某张表 实验目标:将t1.table_one的数据备份到migration_one.table_11(提醒:这两个表结构一致) 同一个MySQL中有很多库&…...

适用于 Linux 的 WPF:Avalonia

许多年前,在 WPF 成为“Windows Presentation Foundation”并将 XAML 作为 .NET、Windows 等的 UI 标记语言引入之前,有一个代号为“Avalon”的项目。Avalon 是 WPF 的代号。XAML 现在无处不在,XAML 标准是一个词汇规范。 Avalonia 是一个开…...

【教3妹学编程-算法题】数组中两个数的最大异或值

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开心呀。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&…...

STM32-RTC实时时钟

目录 RTC实时时钟 功能框图 UNIX时间戳 初始化结构体 RTC时间结构体 RTC日期结构体 RTC闹钟结构体 进入和退出配置函数 实验环节1:显示日历 常规配置 RTC配置 测试环节 实验现象 实验环节2:闹钟 常规配置 RTC配置 测试环节 实验现象 R…...

初学Flutter,实现底部导航切换

效果展示 flutter bottomNavBar 主要实现代码 入口文件:main.dart import package:flutter/material.dart; import package:flutter_demo/components/bottomNavBar.dart; import package:flutter_demo/views/cart.dart; import package:flutter_demo/views/cata.d…...

使用JMeter进行接口压力测试

1.我首先创建一个线程组 2.创建好之后如图所示 3. 进行配置 4. 然后添加一个https请求 5.创建好之后设置请求方法和对应参数 6.设置表格监听器 7.创建好之后如图所示 8.保存jmx文件后点击运行进行测试,结果反馈如下图...

ElasticSearch集群架构实战及其原理剖析

ES集群架构 为什么要使用ES集群架构 分布式系统的可用性与扩展性: 高可用性 服务可用性:允许有节点停止服务;数据可用性:部分节点丢失,不会丢失数据; 可扩展性 请求量提升/数据的不断增长(将数据分布…...

选择适合你的办公桌:提高工作效率的关键

​在如今的数字时代,越来越多的人将办公桌移到家里或办公室。但是,如何选择适合你的办公桌可能是个挑战。不同的工作需要和工作空间大小会影响你的选择。下面是一些简单的建议,帮助你找到适合你的办公桌,提高工作效率。 首先&…...

机器学习之多层感知机 MLP简洁实现 《动手深度学习》实例

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…...

使用C#在Windows上调用7-zip压缩文件

使用C#在Windows上调用7-zip压缩文件 可以设置输出文件的路径也可以留空,留空则会在压缩文件创建一个同名的.压缩包 可以设置压缩包的密码 可以设置压缩包的加密方式(ASE-256),可以使用LZMA但是加密码会报错 可以设置压缩包的格式(zip),可以使用7z但是加…...

京东数据平台:2023年Q3季度黄金市场数据分析

继9月国内黄金市场持续上涨后,进入10月中下旬后,黄金行情再度反转,多家品牌金饰价格再次突破600元/克,达到611元/克。 今年以来,黄金行情不断走俏,销售市场也有明显增长。根据鲸参谋平台的数据显示&#xf…...

https原理

首先说一下几个概念:对称加密、非对称加密 对称加密: 客户端和服务端使用同一个秘钥,分两种情况: 1、所有的客户端和服务端使用同一个秘钥,这个秘钥被泄漏后数据不再安全 2、每个客户端生成一个秘钥&…...

iPXE脚本编程实战:自动化部署、故障诊断和定制化菜单终极指南

iPXE脚本编程实战:自动化部署、故障诊断和定制化菜单终极指南 【免费下载链接】ipxe iPXE network bootloader 项目地址: https://gitcode.com/gh_mirrors/ip/ipxe iPXE作为领先的开源网络启动引导程序,提供了强大的脚本编程功能,让网…...

OpenUPM安全最佳实践:保护你的Unity包注册表完全指南 [特殊字符]

OpenUPM安全最佳实践:保护你的Unity包注册表完全指南 🔒 【免费下载链接】openupm OpenUPM - Open Source Unity Package Registry (UPM) 项目地址: https://gitcode.com/gh_mirrors/op/openupm OpenUPM作为开源Unity包管理器(UPM&…...

Linux内核驱动开发:从传统proc接口到现代seq_file与proc_ops的迁移指南

1. 项目概述:为什么我们需要关注/proc的新接口?如果你在Linux内核驱动开发领域摸爬滚打过几年,一定对/proc文件系统这个“老伙计”又爱又恨。爱它,是因为在调试和状态监控时,它提供了一个极其简单、直观的窗口&#xf…...

从STK仿真到链路决策:低轨卫星网络静态拓扑构建实战解析

1. 低轨卫星网络静态拓扑基础认知 第一次接触卫星网络拓扑时,我被各种专业术语绕得头晕。直到把STK软件里的卫星模型调出来,看着那些在三维空间规律运转的小圆点,才真正理解什么是静态拓扑。简单来说,就是在不考虑卫星实时运动的情…...

开源笔记Memos与AI助手Copaw集成:打造自动化知识管理工作流

1. 项目概述:当开源笔记遇上AI助手最近在折腾个人知识管理工具,发现一个挺有意思的组合:Hailpeng的copaw-memos-integration。简单来说,它把两个独立但都很棒的工具给“焊”在了一起。一边是Memos,一个极简、开源、自部…...

酒吧数字化方案:Java德州扑克小酒馆扫码点餐预约系统源码

在消费升级与数字化转型的大背景下,中小型德州扑克小酒馆的运营模式正逐步从“人工主导”向“数字化赋能”转变。不同于传统酒吧,德州扑克小酒馆以“休闲娱乐餐饮服务”为核心,其运营痛点集中在点餐效率低、预约管理乱、桌台调度难、合规管控…...

提升Unity场景编辑效率:5个你可能不知道的Scene视图操作技巧(含快捷键大全)

提升Unity场景编辑效率:5个你可能不知道的Scene视图操作技巧(含快捷键大全) 在Unity开发中,Scene视图是我们与3D世界交互的主要窗口。对于每天需要处理复杂场景的开发者来说,掌握高效的视图操作技巧就如同画家熟悉自己…...

人群计数老将CSRNet:6年后再看CVPR2018的洞见,它的设计思想对今天还有何启发?

人群计数经典CSRNet:6年后重审其设计哲学与当代启示 2018年CVPR会议上亮相的CSRNet,在当时以简洁优雅的架构刷新了人群计数任务的性能记录。六年过去,当Vision Transformer、扩散模型等新范式不断冲击计算机视觉领域时,回看这个基…...

Git 核心操作:rebase 与 merge 的区别,以及分支管理最佳实践

Git 核心操作:rebase 与 merge 的区别,以及分支管理最佳实践 在日常开发中,Git 是不可或缺的版本控制工具。而 git merge 和 git rebase 是整合分支最常用的两个命令,很多人对它们的概念模糊,不知道何时用哪个。同时&a…...

别再手动启动了!分享一个我自用的RocketMQ Dashboard一键启动脚本(附源码解析)

解放双手:RocketMQ集群智能启动方案与Dashboard深度优化指南 1. 运维自动化的必要性 每次重启服务器后,面对需要依次启动NameServer、Broker和Dashboard的繁琐流程,相信不少RocketMQ使用者都经历过这样的痛苦:忘记启动某个组件导致…...