HTTP/1.1特性总结

优点

【简单,灵活和易于扩展,应用广泛和跨平台】

1.简单:

http基本的报文格式就是header+body,头部信息也是key-value简单的文本形式,易于理解,降低了学习和使用的门槛

2.灵活和易于扩展:

(1)HTTP协议中的各类请求方法,URL,状态码,头字段等每个组成要求都没有被固定死,都允许开发人员自定义和扩充

(2)HTTP工作在应用层(OSI第七层),他下层可以随意变化,比如:HTTPS就是在HTTP与TCP之间增加了SSL/TLS安全传输层

        HTTP/1.1和HTTP/2.0传输协议使用的是TCP协议,而到了HTTP/3.0传输协议改用了UDP协议

3.广泛应用和跨平台:

缺点

1.【无状态】是一把双刃剑

好处:服务器不回去记忆HTTP状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担,能把更多的CPU和内存用来对外提供服务

坏处:服务器没有记忆能力,它在完成有关联性的操作时会非常麻烦;

          比如:登录淘宝-》添加购物车-》下单,这系列操作都要知道用户的身份才行,但是服务器不知道这些请求是有关联的,每次都要问一遍身份信息

如何解决无状态问题?:

   采用Cookie技术,Cookie通过在请求和响应报文中写入Cookie信息来控制客户端的状态;

   相当于,在客户端第一次请求后,服务器会下发一个装有客户信息的【小纸条】,后续客户端请求服务器时,再带上这个【小纸条】,服务器就能认得了

2.【明文传输】是一把双刃剑

好处:方便阅读,为工作带来极大的便利

缺点:HTTP所有的信息都暴露在光天化日之下,毫无隐私可言,很容易被窃取;

3.【不安全】

(1)通信使用明文(不加密),内容可能会被窃听,比如,账号容易被泄漏;

(2)不验证通信方的身份,因此有可能遭遇伪装,比如:访问盗版淘宝,拼多多

(3)无法证明报文的完整性,所以有可能已遭篡改,比如:网站植入广告;

如何解决安全问题?:

用HTTPS的方式解决,也就是通过引入SSL/TLS层,使得在安全上达到极致;

性能

HTTP协议基于TCP/IP,并且使用了【请求-应答】的通信模式,所以性能的关键就在这两点里

1.【长连接】:

   早期HTTP/1.0性能上的一个很大问题就是每次发起一个请求,都要建立一次TCP连接(三次握手),来回做了多   次TCP建立连接与断开连接,增加了通信开销

解决方法:HTTP/1.1提出了长连接的通信方式,也叫持久连接;

长连接优点:减少TCP连接的重复建立和断开所造成的多余开销,减轻服务器负载

长连接特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态;

当然,如果某个HTTP长连接超过一定时间没有任何数据交互,服务端就会主动断开这个连接;

 

2.【管道网络传输】:

  即在同一个TCP连接中,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间;

注意:服务器接受顺序必须按照接收请求的顺序来发送对这些管道化请求的响应

3.【队头阻塞】:

因为当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一同被阻塞了,会招致客户端一直请求不到数据,这也就是【队头阻塞】

注意:HTTP/1.1管道只解决了请求的对头阻塞,但没有解决响应的队头阻塞;

总之,HTTP/1.1的性能一般般,后续的HTTP/2和HTTP/3就是在优化HTTP的性能

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 配置与使用 (Linux 虚拟机Windows客户端)

Centos7 安装Redis详细教程 - JcongJason - 博客园 (cnblogs.com) 安装 下载redis安装包并解压 # 下载,我是在root下执行的下载,所以我的下载目录为:/root/redis-5.0.5,这里按照自己的实际情况调整 wget https://download.redi…

Methoxy PEG Glutaric Acid可以改善物质的溶解性、稳定性和生物相容性

【试剂详情】 英文名称 mPEG-GA,mPEG-Glutaric Acid, Methoxy PEG GA, Methoxy PEG Glutaric Acid 中文名称 聚乙二醇单甲醚戊二酸, 甲氧基-聚乙二醇-戊二酸 外观性状 由分子量决定,固体或液体 分子量 400&…

浅谈Java的synchronized 锁以及synchronized 的锁升级

在Java中,synchronized关键字用于实现线程间的同步,确保同一时刻只有一个线程能够访问被同步的代码块或方法。当一个线程获得synchronized锁定后,其他试图访问同一锁的线程将被阻塞,直到锁被释放。 synchronized锁有两种基本形式…

为什么说六西格玛培训公司是企业问题的“终结者”

随着六西格玛管理方法的走红,六西格玛培训公司应运而生,致力于帮助企业解决各种核心问题,实现业绩的飞跃。那么,六西格玛培训公司究竟能为企业解决哪些问题?又为什么说六西格玛培训公司是企业问题的“终结者”呢&#…

第47期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

【第3期】PMC对话标杆用户:兆原数通在SeaTunnel的应用实践

📣随着技术快速发展,企业对数据系统的现代化改造需求日益增加。在这种背景下,如何在保持业务连续性的同时,实现数据系统的平滑迁移与升级呢?加入我们的本期技术访谈节目,来听听李洪军老师分享他们如何利用S…

算法题解记录11+++从前序与中序遍历序列构造二叉树(百日筑基)

题目描述: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,…

树莓派驱动开发--iic篇(JY901S陀螺仪的三轴角度简单读取)

前言:既然大家都到了这步,想必对驱动开发有着一定的理解啦吧!!那我在前面说一下流程: 修改编译设备树》》》编写编译驱动文件》》》编写编译app文件》》》ftp挂载将前面3复制到树莓派的对应位置》》》加载驱动模块》》…

2024软件测试自动化框架都有哪些?

软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价。快速实现质量是必要的,因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求&#xf…

策略者模式(代码实践C++/Java/Python)————设计模式学习笔记

文章目录 1 设计目标2 Java2.1 涉及知识点2.2 实现2.2.1 实现两个接口飞行为和叫行为2.2.2 实现Duck抽象基类(把行为接口作为类成员)2.2.3 实现接口飞行为和叫行为的具体行为2.2.4 具体实现鸭子2.2.5 模型调用 3 C(用到了大量C2.0的知识&…

数据库SQL语言实战(三)

删除操作 本篇文章重点在于SQL中的各种删除操作 题目一 删除表中的学号不全是数字的那些错误数据,学号应该是数字组成,不能够包含字母空格等非数字字符。方法之一:用substr函数,例如Substr(sid,1,1)返回学号的第一位&#xff0…

C++常考面试题(第二篇)

【题目 16】拷贝构造函数的格式和作用,自动调用拷贝构造函数的几种情形? 格式:没有返回值 函数名和类名相同 参数:const person& 类型引用 作用:逐个给成员变量进行赋值三种情形下会调用拷贝构造函数 (1) 当用一…

Zynq学习笔记--AXI 总线仿真(AXI VIP)

目录 1. 概述 2. Simulation with AXI VIP 2.1 axi_vip_pkg 2.2 design_1_axi_vip_0_0_pkg 2.3 参数指定 3. 实例化注意事项 3.1 名称对应关系 3.2 寄存器地址 3.3 block design 1. 概述 AXI Verification IP(AXI VIP)是一种用于验证AXI总线协议的…

09 SQL进阶 -- SQL高级处理 -- 窗口函数等

1. 窗口函数 1.1 窗口函数概念及基本的使用方法 窗口函数也称为 OLAP 函数。OLAP 是 OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。 为了便于理解,称之为窗口函数。常规的 SELECT 语句都是对整张表进行查询,而窗口函数可以让我们有选择的去某…

Spring @Transactional 注解

官方文档:https://docs.spring.io/spring-framework/reference/data-access/transaction/declarative/annotations.html#:~:textThe%20%40Transactional%20annotation%20is%20metadata,suspending%20any%20existing%20transaction%22). 推荐阅读:https:…

基于springboot实现大创管理系统【项目源码+论文说明】计算机毕业设计

基于springboot实现大创管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了大创管理系统的开发全过程。通过分析大创管理系统管理的不足,创建了一个计算机管理大创管理系统的方案。文章介…

Re65:读论文 GPT-3 Language Models are Few-Shot Learners

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名:Language Models are Few-Shot Learners ArXiv网址:https://arxiv.org/abs/2005.14165 2020 NeurIPS:https://papers.nips.cc/paper/2020/hash/1457c0d6bfcb49674…

集成sa-token实现登录和RBAC权限控制

集成sa-token实现登录和RBAC权限控制 文章目录 1.sa-token是什么?1.1简介1.2官网1.3 Sa-Token 功能一览1.4 功能结构图 2.集成sa-token及配置2.1 pom依赖2.2 yaml配置2.3 代码配置 4.RBAC权限控制表设计5.菜单权限树构造实现5.1菜单权限数据sql查询5.2菜单权限树构建…

solidity(10)

🔮 Solidity变量指南:探寻状态、局部和全局三界之秘🌌 在Solidity的神秘大陆上,变量就像是散落在时间和空间中的宝石💎,每颗都有它独特的魔力和作用域。掌握这三种变量,是成为合约法师的重要一…

Vue项目学习(一)-SQL闯关

Hello , 我是小恒不会java。今天来阅读一个Vue纯前端项目--SQL在线闯关 进步的方法除了文档书籍视频,学会阅读源代码,从代码中学会解决需求的方法也是必要的 已部署完成,在线体验:http://sql.yunduanjianzhan.cn 背景 简介 闯…