计算机网络-HTTP协议

embedded/2024/12/19 21:08:45/
http://www.w3.org/2000/svg" style="display: none;">

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方法是用来确认连接过程中发生的一系列操作。
https://i-blog.csdnimg.cn/direct/891fe2afe96147d6af4d93645ce8ce36.png" alt="在这里插入图片描述" />
但是由于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连接。
https://i-blog.csdnimg.cn/direct/96722a2225ae4a8f937b3a29e4e87e37.png" alt="在这里插入图片描述" />
这样造成了连接资源的浪费,所以出现了持久连接 HTTP keep-alive。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接。
https://i-blog.csdnimg.cn/direct/e81bd363a26943ffb04f89a4ae175ec7.png" alt="在这里插入图片描述" />
在HTTP/1.1中,所有的连接默认都是持久连接。但是在HTTP/1.0总并没有标准化。持久化连接需要服务端的支持,同时客户端也需要支持。

管线化

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

使用Cookie 的状态管理

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


http://www.ppmy.cn/embedded/147107.html

相关文章

基于python对网页进行爬虫简单教程

python对网页进行爬虫 基于BeautifulSoup的爬虫—源码 """ 基于BeautifulSoup的爬虫### 一、BeautifulSoup简介1. Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要…

Fiddler勾选https后google浏览器网页访问不可用

一、说明 最近电脑重新安装系统后,之前的所有工具都需要重新安装和配置,有个项目需要抓包https包查看一下请求的内容,通过Fiddler工具,但是开启后,发现https的无法抓取,同时google浏览器也不无法访问互联网…

Git 仓库托管教程

git远程仓库 常用的远程仓库-->托管服务:github、码云、gitlab等 github需要魔法上网,速度较慢因为在国外且仅仅支持Git,如果不是Git项目是不支持的;码云--gitee国内的代码托管平台,服务器在国内速度快一些&#…

c++数据结构算法复习基础--12--排序算法-常见笔试面试问题

1、STL里sort算法用的是什么排序算法? 快速排序算法。 插入排序(待排序序列个数<32时,系统默认32)。 递归层数太深,转成堆排序。 #include<algorithm> //算法库,头文件使用了快速排序: sort原码: 小到大 _EXPORT_STD template <class _RanIt> _CON…

《Python制作动态爱心粒子特效》

一、实现思路 粒子效果&#xff1a; – 使用Pygame模拟粒子运动&#xff0c;粒子会以爱心的轨迹分布并运动。爱心公式&#xff1a; 爱心的数学公式&#xff1a; x16sin 3 (t),y13cos(t)−5cos(2t)−2cos(3t)−cos(4t) 参数 t t 的范围决定爱心形状。 动态效果&#xff1a; 粒子…

智能文档处理百宝箱,文档处理的必备利器

1、引言 文档解析是开发者在业务实践中会频繁面临的场景&#xff0c;不管是用AI辅助日常工作&#xff0c;还是从事产品研发&#xff0c;从非结构化文本中提取文字、图片等信息具有很大的挑战。 目前市面上的文档解析工具普遍存在繁杂无序&#xff0c;缺乏统一评估标准&#xff…

【机器学习】解构概率,重构世界:贝叶斯定理与智能世界的暗语

文章目录 条件概率与贝叶斯定理&#xff1a;深入理解机器学习中的概率关系前言一、条件概率与贝叶斯定理1.1 条件概率的定义与公式1.1.1 条件概率的定义1.1.2 条件概率的实例讲解 1.2 条件概率的性质与法则1.2.1 链式法则1.2.2 全概率公式1.2.3 贝叶斯定理的推导 1.3 贝叶斯定理…

【Leetcode 每日一题 - 扩展】1326. 灌溉花园的最少水龙头数目

问题背景 在 x x x 轴上有一个一维的花园。花园长度为 n n n&#xff0c;从点 0 0 0 开始&#xff0c;到点 n n n 结束。 花园里总共有 n 1 n 1 n1 个水龙头&#xff0c;分别位于 [ 0 , 1 , . . . , n ] [0, 1, ..., n] [0,1,...,n]。 给你一个整数 n n n 和一个长度…