【图解HTTP】HTTP协议基础

news/2024/5/15 20:38:14/文章来源:https://blog.csdn.net/m0_52043808/article/details/126621866

【HTTP协议用于客户端和服务器端之间的通信】

【客户端】请求访问文本或图像等资源的一段

服务器端】提供资源响应的一端

客户端发送请求,服务器端回复响应

从客户端开始建立通信的,服务器端在没有接受到请求之前不会发送响应。

【请求报文】

 

【响应报文】

 【HTTP是不保存状态的协议】

HTTP是一种无状态(stateless)协议。HTTP协议自生不对请求和响应之间的通信状态进行保存。

协议对于发送过的请求或响应都不做持久化处理。 优点:更快的处理大量事务,确保协议的可伸缩性

HTTP/1.1虽然是无状态协议,但是引入了Cookie技术,用Cookie可以管理状态。

【使用Cookie的状态管理】

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

Cookie会根据服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。

服务器端发现客户端发送的Cookie后,会去检查究竟是哪一个客户端发送的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

 

 

【请求URI定位资源】

HTTP协议使用URI定位互联网上的资源。

当客户端请求访问资源而发送请求时,URI需要作为请求报文中的请求URI包含在内。

 【请求URI方式】

(1)URI为完整的请求URI

 

(2)在首部字段Host中写明网络域名或IP地址

 

(3)可以使用*代替请求URI,如果不是访问特定资源

 

【HTTP方法】

【GET】获取资源

 

【POST】传输实体的主体

 【PUT】传输文件

要求在请求报文的主体包含文件内容,然后保存到请求URI指定的位置。

但是鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的Web网站不使用该方法。

【HEAD】获得报文首部

HEAD只返回报文首部,不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等。

【DELETE】删除文件

DELETE方法按请求URI删除指定的资源

但是,HTTP/1.1的DELETE方法本身和PUT方法一样不带验证机制,所以一般的Web网站也不使用DELETE方法。

【OPTIONS】询问支持的方法

OPTIONS方法用来查询针对请求URI指定的资源支持的方法。

 

【TRACE】追踪路径

让服务器端将之前的请求通信环回给客户端的方法。

不会用到。

【CONNECT】要求用隧道协议连接连接代理

CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。

主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

 

 【持久连接】

HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。

 在容量很小的文本传输没有问题,但是当文档中含大量图片时,在发送请求访问HTML页面资源的同时,也会请求该HTML页面里包含的其他资源。因此,每次请求都会造成不必要的TCP连接建立和断开。

 为解决TCP连接问题,HTTP/1.1提出了持久连接的方法:只要任意一端没有明确提出断开连接,就保持TCP连接状态。

 减少TCP连接的重复建立和断开所造成的额外开销,减小了服务器端的负载,加快Web页面显示速度

在HTTP/1.1中,所有的连接默认都是持久连接。

【管线化】

持久连接使得多数请求以管线化(pipelining)方式发送成为可能。

之前发送请求后需等待并收到响应,才能发送下一个请求。

管线化技术出现后,不用等待响应也可以直接发送下一个请求。这样可以同时并行发送多个请求。

 

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

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

相关文章

Python 测试开发 20+ 项目实战,提升 5 大测试核心技能

⬇️ 点击“下方链接”,提升测试核心竞争力! >>更多技术文章分享和免费资料领取 软件测试行业从业门槛越来越高,传统手工测试人员逐渐被淘汰,而 测试开发工程师 则供不应求,成为 BAT 互联网大厂高薪求聘的稀缺人才,年薪 30W+ 起,年薪 50W-100W+ 也很常见,甚至超越…

【vue3】03. 跟着官网学习vue3

每日鸡汤:所有真实的快乐,都来自很久的努力 前言 这一节我们主要学习【模版语法】相关的知识,上一节,我们说到根目录下面的index.html是我们的根组件模版,所以可见模版语法是基于html的。 一、模版基本语法 1. 使用…

人工智能+工业互联网,如何破圈?

如何破圈? 2022年奥密克戎的袭击还没阻断,金三银四的寒冬还没挺过,大厂裁员就喧嚣尘上,内卷的战争愈演愈烈。 但我认为,自身有一些加分项,对于还击压力还是能有一些优势。 对于每位开发者来说&#xff0c…

Python进阶(三)-图形界面编程Tkinter(3)

三、Tkinter创建图像界面3 3.1 组件介绍 3.1.1 Listbox列表框 首先介绍一下列表框,即 Listbox。在使用 Tkinter 进行 GUI 编程的过程中,如果需要用户自己进行选择时就可以使用列表框控件。列表框中的选项可以是多个条目,也可以是单个唯一条…

Jenkins持续集成部署-配置Harbor机器人账号推送镜像

Jenkins持续集成部署-配置Harbor机器人账号推送镜像 前言1. 新建 Harbor 机器人账号2. 配置到 Jenkins 全局凭证中3. 配置全局参数后记前言 在某些情况下,为了 Harbor仓库的安全性考虑,在 流水线任务中直接配置用户的话,后面还要维护其权限,命名项目是公开的了,登录成功 …

[Java]快速入门二叉树,手撕相关面试题

专栏简介 :java语法及数据结构 题目来源:leetcode,牛客,剑指offer 创作目标:从java语法角度实现底层相关数据结构,达到手撕各类题目的水平. 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 前言 一>树形结…

第三方库

Python拥有活跃的贡献者和用户支持社区,并且根据开放源代码许可条款,其软件可供其他Python开发人员使用,这是python之所以这么受欢迎的原因之一。 第三方库就是非python自带的,由其他人写的python模块。 pypi是python官方的第三方库仓库,所有人都可以下载第三方库或上传自…

Mach-O详解(一) - 破题

什么是Mach-O Mach-O: Mach Object 布拉布拉…,概念没意思,反正就是一可执行文件 ios中的常见的.o .a .dylib Framework dyld dsym 都是Mach-O 抽象概念 是一种可执行文件,用于目标代码,动态库,内核转储 每个Mac…

今天来说说Java开发中常用的框架有哪些?

什么是框架 “框架(Framework)”一词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架。在编程领域,框架就是应用程序的骨架,开发人员可以在这个骨架上加入自己的东西,搭建出符合自己需求的应用系统…

超全面试汇总——Hadoop(二)

超全面试汇总——Hadoop(二) 谈谈什么是Hadoop?MapReduce分布式计算shuffle流程shuffle阶段的数据压缩机制了解吗MapReduce实现基本SQL操作的原理 1. Join的实现原理2. Group By的实现原理3. Distinct的实现原理 一个文件有上亿url,内存很小…

Python编程快速上手 PDF高清版下载

《Python编程快速上手》PDF高清版免费下载地址内容简介 如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书是一本面向实践的Python…

91.(leaflet之家)leaflet态势标绘-进攻方向绘制

听老人家说:多看美女会长寿 leaflet之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

HXAPIGate系列——HXAPIGate快速入门

1. HXAPIGate网关简介 HXAPIGate&#xff08;中文名&#xff1a;浩心API网关&#xff09;&#xff0c;其核心能力在于对API微服务的零侵入&#xff0c;使用HXAPIGate代理微服务API接口时&#xff0c;微服务建设只需要进行纯粹的业务代码实现即可&#xff0c;不需要考虑任何权限…

广州地铁将在十三号线、二十一号线新增5个地铁口,位置在这里

作为天选打工人不得不感叹一句&#xff1a; 广州地铁yyds &#xff01;而最近广州地铁有了许多新消息朋友们可不能不知道呀。 近日&#xff0c;广州公共资源交易中心发布了《广州市轨道交通十三号线首期、二十一号线部分车站出入口及零星工程勘察设计服务项目公告简要》&#x…

Dilated Convolution(空洞卷积、膨胀卷积)详解

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;目标检测系列——开山之作RCNN原理详解    目标检测系列——Fast R-CNN原理详解   目标检测系列——Faster R-CNN原理详解 &#x1f34a;近期目标&a…

linux常用的通配符与正则表达式

我们在很多地方都会用到通配符和正则表达式来实现我们的日常操作,提高我们的工作效率。但是很多新伙伴,往往容易将他们弄混。 首先我们需要知道通配符和正则表达式的使用场景: 通配符也叫文件名替换,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv; 正则表达式主要…

视觉SLAM十四讲学习笔记--第七讲视觉里程计学习笔记总结(1)

专栏系列文章如下&#xff1a; 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和Ei…

Springboot人体健康检测微信小程序毕业设计-附源码012142

摘 要 本文设计了一种基于微信小程序的人体健康检测小程序&#xff0c;主要为人们提供了方便的各项健康检测服务&#xff0c;包括健康数据编辑、健康科普、健康讨论、注册登录功能等&#xff0c;用户能够方便快捷地查看健康科普知识、进行健康数据信息的上传等。人体健康检测微…

(附源码)ssm医药销售管理系统 毕业设计 042322

SSM医药销售管理系统 摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采SSM技术和mysql数据库来完成对系统的…

[JavaEE系列] Thread类的基本用法

文章目录线程创建第一类: 继承 Thread 类继承 Thread 类, 重写 run 方法使用匿名内部类, 继承 Thread 类, 重写 run 方法第二类: 实现 Runnable 接口实现 Runnable 接口, 重写 run 方法使用匿名内部类, 实现 Runnable 接口, 重写 run 方法第三类: 使用 lambda 表达式启动线程比…