计算机网络-HTTP协议

HTTP

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

HTTP是通过URI定位网上的资源,理论上将URI可以访问互联网上的任意资源。

如果不是访问特定的资源而是对服务器本身发起请求,可以使用一个来代替请求URL。

bash 复制代码
OPTIONS * HTTP/1.1
GET

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

POST

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

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

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,这样服务端就知道是从那个客户端发送过来的。

相关推荐
如果可以,请简单点。12 分钟前
SSL Version 2 and 3 Protocol Detection漏洞修复
网络·网络协议·ssl
你好骚啊15 分钟前
宝塔SSL证书申请失败,报错:申请SSL证书错误 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘(已解决)
服务器·网络协议·ssl
代码欢乐豆2 小时前
计算机网络——期末复习(1)背诵
网络·计算机网络·智能路由器
代码欢乐豆4 小时前
计算机网络——期末复习(2)1-3章考试重点
网络·计算机网络·智能路由器
重生之我在VS写bug4 小时前
【计算机网络2】计算机网络的性能能指标
计算机网络
Heaven6456 小时前
4.9 TCP 拥塞控制算法
网络协议·tcp/ip·计算机网络·智能路由器
Heaven6456 小时前
4.8 TCP 的拥塞控制
网络协议·tcp/ip·计算机网络·智能路由器
hrhcode14 小时前
计算机网络知识点全梳理(一.TCP/IP网络模型)
网络·tcp/ip·计算机网络
时空自由民.15 小时前
UIP协议栈 TCP通信客户端 服务端,UDP单播 广播通信 example
网络协议·tcp/ip·udp