图解HTTP-HTTP协议

news2024/12/23 7:44:06

HTTP

HTTP是一种不保存状态,即无状态的协议。HTTP协议自身不对请求和响应之间的通信进行保存。为了保存状态因此后面也有一些技术产生比如Cookies技术。

HTTP是通过URI定位网上的资源,理论上将URI可以访问互联网上的任意资源。
如果不是访问特定的资源而是对服务器本身发起请求,可以使用一个来代替请求URL。

OPTIONS * HTTP/1.1
GET

GET方法用来请求访问已被URI识别的资源。

POST

POST方法用来传输实体的主体。虽然GET方法也可以传输实体的主体,但是一般不用GET方法传输,而是用POST方法。

注解:也就是GET主要是用于访问资源,POST一般携带实体, 但是也没有区分的这样严格只是一个习惯,例如在REST风格中GET经常携带信息访问资源。

HEAD

HEAD和GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期和时间。

DELETE

DELETE方法用来删除文件,是与PUT相反的方法。DELTE方法按请求URI删除指定的资源。

PUT 传输文件

PUT方法用来传输文件。由于PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的WEB网站不使用该方法。配合WEB应用程序验证机制,就可以放开PUT方法。

OPTIONS

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

TRACE

TRACE 方法是让WEB 服务端将之前的请求通信返回给客户端的方法。
客户端通过TRACE方法可以查询发送出去的请求是怎样被加工修改的。这是因为想要连接到源服务器可能会通过代理中转,TRACE方法是用来确认连接过程中发生的一系列操作。
在这里插入图片描述
但是由于TRACE 方法本来就不常用,加上容易被XST攻击,一般不常用。

Cross-Site Tracing (XST) 概述

  • 定义:
    Cross-Site Tracing (XST) 是一种攻击手段,利用 HTTP TRACE 方法来获取敏感信息。TRACE 方法是一种调试工具,用于回显服务器收到的请求内容。
  • 工作原理:
    当客户端发送一个 TRACE 请求时,服务器会将接收到的请求头原样返回给客户端。
    攻击者可以通过诱导用户点击恶意链接,使用户的浏览器向目标服务器发送 TRACE 请求,从而获取用户的敏感信息(如 cookies、认证令牌等)。
  • 风险:
    如果服务器支持 TRACE 方法且未进行适当的安全配置,攻击者可以利用这一方法窃取用户的会话信息,进而进行进一步的攻击。
  • 防护措施:
    禁用 TRACE 方法: 最直接的方法是在服务器上禁用 TRACE 方法。
CONNECT

CONNECT 方法要求在代理服务器通信时建立隧道,实现隧道协议进行TCP通信。主要是SSL 和TLS 协议把通信内容加密以后经网络隧道传输。

使用方法下达命令

向请求URI指定的资源发送请求报文时,采用成为方法的命令。

方法说明支持的HTTP协议版本
GET获取资源1.0、1.1
POST传输实体1.0、1.1
PUT传输文件1.0、1.1
HEAD获得报文首部1.0、1.1
DELETE删除文件1.0、1.1
OPTIONS访问支持的方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
ULINE断开连接1.0
持久连接节省通信量

HTTP 请求出事版本中,每一次HTTP都要建立和断开一次TCP连接。
在这里插入图片描述
这样造成了连接资源的浪费,所以出现了持久连接 HTTP keep-alive。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接。
在这里插入图片描述
在HTTP/1.1中,所有的连接默认都是持久连接。但是在HTTP/1.0总并没有标准化。持久化连接需要服务端的支持,同时客户端也需要支持。

管线化

持久连接使得多数请求以管线化方式发送成为可能。也就是不一定要等响应返回以后才能发送下一个请求,管线化就可以并行发送锁哥请求。

使用Cookie 的状态管理

HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。所以有了Cookies 技术通过在请求和响应报文中写入Cookie信息来控制客户端状态。
Cookie 会根据从服务器发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。下次请求的时候携带Cookie,这样服务端就知道是从那个客户端发送过来的。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【Go】-限流器的四种实现方法

目录 关于限流和限流器 固定窗口限流器 滑动窗口限流器 漏桶限流器 令牌桶限流器 总结 关于限流和限流器 限流(Rate Limiting)是一种控制资源使用率的机制,通常用于防止系统过载和滥用。 限流器(Rate Limiter)是…

CTF_1

CTF_Show 萌新赛 1.签到题 <?php if(isset($_GET[url])){system("curl https://".$_GET[url].".ctf.show"); }else{show_source(__FILE__); }?> 和 AI 一起分析 1.if(isset($_GET[url]))检查GET请求中是否存在名为url的参数。 curl 2.curl…

[文献阅读] Unsupervised Deep Embedding for Clustering Analysis (无监督的深度嵌入式聚类)

文章目录 Abstract:摘要聚类深度聚类 KL散度深度嵌入式聚类(DEC)KL散度聚类软分配&#xff08;soft assignment&#xff09;KL散度损失训练编码器的初始化聚类中心的初始化 实验评估总结 Abstract: This week I read Unsupervised Deep Embedding for Clustering Analysis .It…

记录:virt-manager配置Ubuntu arm虚拟机

virt-manager&#xff08;Virtual Machine Manager&#xff09;是一个图形用户界面应用程序&#xff0c;通过libvirt管理虚拟机&#xff08;即作为libvirt的图形前端&#xff09; 因为要在Linux arm环境做测试&#xff0c;记录下virt-manager配置arm虚拟机的过程 先在VMWare中…

使用C语言编写UDP循环接收并打印消息的程序

使用C语言编写UDP循环接收并打印消息的程序 前提条件程序概述伪代码C语言实现编译和运行C改进之自由设定端口注意事项在本文中,我们将展示如何使用C语言编写一个简单的UDP服务器程序,该程序将循环接收来自指定端口的UDP消息,并将接收到的消息打印到控制台。我们将使用POSIX套…

Spring Boot 教程之三十六:实现身份验证

如何在 Spring Boot 中实现简单的身份验证&#xff1f; 在本文中&#xff0c;我们将学习如何使用 Spring设置和配置基本身份验证。身份验证是任何类型的安全性中的主要步骤之一。Spring 提供依赖项&#xff0c;即Spring Security&#xff0c;可帮助在 API 上建立身份验证。有很…

什么样的LabVIEW控制算自动控制?

自动控制是指系统通过预先设计的算法和逻辑&#xff0c;在无人工干预的情况下对被控对象的状态进行实时监测、决策和调整&#xff0c;达到预期目标的过程。LabVIEW作为一种图形化编程工具&#xff0c;非常适合开发自动控制系统。那么&#xff0c;什么样的LabVIEW控制算作“自动…

GFPS扩展技术原理(七)-音频切换消息流

音频切换消息流 Seeker和Provider通过消息流来同步音频切换能力&#xff0c;触发连接做切换&#xff0c;获取或设置音频切换偏好&#xff0c;通知连接状态等等。为此专门定义了音频切换消息流Message Group 为0x07&#xff0c;Message codes如下&#xff1a; MAC of Audio s…

视频直播点播平台EasyDSS与无人机技术的森林防火融合应用

随着科技的飞速发展&#xff0c;无人机技术以其独特的优势在各个领域得到了广泛应用&#xff0c;特别是在森林防火这一关键领域&#xff0c;EasyDSS视频平台与无人机技术的融合应用更是为传统森林防火手段带来很大的变化。 一、无人机技术在森林防火中的优势 ‌1、快速响应与高…

机器人路径规划和避障算法matlab仿真,分别对比贪婪搜索,最安全距离,RPM以及RRT四种算法

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1贪婪搜索算法原理 4.2最安全距离算法原理 4.3RPM 算法原理 4.4 RRT 算法原理 5.完整程序 1.程序功能描述 机器人路径规划和避障算法matlab仿真,分别对比贪婪搜索,最安全距离,RPM以及R…

【论文笔记】Visual Alignment Pre-training for Sign Language Translation

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Visual Alignment Pre-tra…

【附源码】Electron Windows桌面壁纸开发中的 CommonJS 和 ES Module 引入问题以及 Webpack 如何处理这种兼容

背景 在尝试让 ChatGPT 自动开发一个桌面壁纸更改的功能时&#xff0c;发现引入了一个 wallpaper 库&#xff0c;这个库的入口文件是 index.js&#xff0c;但是 package.json 文件下的 type:"module"&#xff0c;这样造成了无论你使用 import from 还是 require&…

Apache解析漏洞(apache_parsingCVE-2017-15715)

apache_parsing 到浏览器中访问网站 http://8.155.8.239:81/ 我们写一个木马 1.php.jpg 我们将写好的木马上传 会得到我们上传文件的路径 我们访问一下 发现上传成功 发现木马运行成功&#xff0c;接下来使用蚁剑连接我们的图片马 获取 shell 成功 CVE-2013-454 我们还是到…

C++-----函数与库

数学中的函数与编程中的函数对比 数学中的函数 - 数学函数是一种映射关系&#xff0c;例如&#xff0c;函数\(y f(x)x^{2}\)&#xff0c;对于每一个输入值\(x\)&#xff0c;都有唯一确定的输出值\(y\)。它侧重于描述变量之间的数量关系&#xff0c;通常通过公式来表示这种关系…

带着国标充电器出国怎么办? 适配器模式(Adapter Pattern)

适配器模式&#xff08;Adapter Pattern&#xff09; 适配器模式适配器模式&#xff08;Adapter Pattern&#xff09;概述talk is cheap&#xff0c; show you my code总结 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是面向对象软件设计中的一种结构型设计…

SKETCHPAD——允许语言模型生成中间草图,在几何、函数、图算法和游戏策略等所有数学任务中持续提高基础模型的性能

概述 论文地址&#xff1a;https://arxiv.org/pdf/2406.09403 素描是一种应用广泛的有效工具&#xff0c;包括产生创意和解决问题。由于素描能直接传达无法用语言表达的视觉和空间信息&#xff0c;因此从古代岩画到现代建筑图纸&#xff0c;素描在世界各地被用于各种用途。儿童…

初等函数整理

1.幂函数 2.指数函数 3.对数函数

【C/C++】手搓项目中常用小工具:日志、sqlit数据库、Split切割、UUID唯一标识

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章将写到一些手搓常用工具&#xff0c;方便在项目中的使用&#xff0c;并且在手搓的过程中一些函数如&#xff1a;日志 宏中的__VA_ARGS__接收可变参…

路径规划之启发式算法之二十一:狼群算法(Wolf Pack Algorithm,WPA)

狼群算法(Wolf Pack Algorithm,WPA)是一种模拟狼群捕食行为及其猎物分配方式的群体智能优化算法。它由吴虎胜等人在2013年提出,算法采用了基于人工狼主体的自下而上的设计方法和基于职责分工的协作式搜索路径结构。它通过抽象狼群搜索、围攻以及更新换代的三种行为方式来实…

Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门任务创建【入门二】

继上一篇的hello world&#xff1a; 【Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门hello world输出【入门一】-CSDN博客】 这一篇我们开始任务的创建。 工程还是用上一篇的hello world作为模板&#xff0c;hello world就不再app_main函数中输出&#xff0c;改成在任务…