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

相关推荐
旧味清欢|7 分钟前
关注分离(Separation of Concerns)在前端开发中的实践演进:从 XMLHttpRequest 到 Fetch API
javascript·http·es6
self-discipline6341 小时前
【计网速通】计算机网络核心知识点与高频考点——数据链路层(二)
网络·网络协议·计算机网络
CryptoPP1 小时前
深入实践:基于WebSocket的全球化金融数据实时对接方案。 马来西亚、印度、美国金融数据API
websocket·网络协议·金融
网络抓包与爬虫2 小时前
Wireshark——抓包分析
websocket·网络协议·tcp/ip·http·网络安全·https·udp
暴走的YH3 小时前
【网络协议】三次握手与四次挥手
网络·网络协议
仙女很美哦3 小时前
Flutter视频播放、Flutter VideoPlayer 视频播放组件精要
websocket·网络协议·tcp/ip·http·网络安全·https·udp
路由侠内网穿透4 小时前
本地部署开源流处理框架 Apache Flink 并实现外部访问
大数据·网络协议·tcp/ip·flink·服务发现·apache·consul
Amos_ FAT4 小时前
关于串口协议的一点知识
经验分享·网络协议
小吃饱了5 小时前
TCP可靠性传输
网络·网络协议·tcp/ip
q567315235 小时前
使用puppeteer库编写的爬虫程序
爬虫·python·网络协议·http