http协议详解,get,post,put,delete,head,options,trace消息头详解

声明!

学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec

http协议简介

HTTP协议是Hypertext Transfer Protocol(也称为超文本传输协议)的缩写,是用于从万维网(www:world wide web)服务器传输超文本到本地浏览器的传送协议

http协议工作于客户端-服务端(browser/sever)B/S架构上。

浏览器作为http客户端通过url向http服务端即web服务器发送所有请求。web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP(超文本传输协议)经历了多个版本的发展,每个版本都在性能、功能和安全性等方

面有所改进。以下是对各个HTTP协议版本的全面介绍:

http协议版本介绍

HTTP/0.9

诞生背景:

  • 互联网发展初期,对网页的需求较为简单,主要是纯文本内容的传输。
    主要特性:
  • 仅支持GET请求,用于获取HTML文档。
  • 没有请求头和响应头,通信极为简洁。
  • 只能传输纯文本内容,不支持多媒体资源。
    使用场景:
  • 早期简单的网页浏览,通常是一些静态的文本页面。

HTTP/1.0

诞生背景:

  • 随着互联网的发展,人们对网页的内容和交互性有了更高的要求。
    主要特性:
  • 引入了请求头和响应头,包含了一些基本的元信息,如文档类型、日期等。
  • 支持多种请求方法,如,GET、POST和HEAD。
  • 但每次请求都需要建立新的TCP连接,传输完成后立即断开,效率较低。
    使用场景:
  • 适用于一些简单的网页浏览和交互场景,但对于包含大量资源的网页,加载速度较慢。

HTTP/1.1

诞生背景:

  • 为了解决HTTP/1.0连接频繁建立和断开的问题,提高网页加载速度和性能。
    主要特性:
  • 持久连接(Keep-Alive),允许在一个TCP连接上发送多个请求和响应,减少连接建立的开销。
  • 管道化(Pipel ining),客户端可以在一个连接上连续发送多个请求,但服务器的响应顺序必须与请求顺序一致。
  • 增加了更多的请求方法,如PUT、DELETE、OPTIONS等。
  • 引入缓存控制机制,通过头部字段控制缓存的使用。
    使用场景
  • 目前广泛应用于大多数网站和Wb应用程序,是较为成熟和稳定的版本。

HTTP/2

诞生背景:

  • 随着Web应用的日益复杂,用户对网页加载速度和性能的要求越来越高,HTTP/1.1在一些方面存在局限性。
    主要特性:
  • 二进制分帧,将HTTP消息分解为更小的帧进行传输,提高传输效率和灵活性。
  • 多路复用,可在一个连接上同时处理多个请求和响应,无需按顺序发送,提高并发处理能力。
  • 头部压缩,使用HPACK算法对头部进行压缩,减少传输的数据量。
  • 服务器推送,服务器可以主动向客户端推送资源,提高页面加载速度。
    使用场景:
  • 对于性能要求较高的现代Web应用,特别是需要快速加载大量资源的场景。

HTTP/3

诞生背景:

  • 虽然HTTP/2在性能上有了很大提升,但它仍然基于TCP协议,而TCP在一些情况下可能会出现连接建立时间长、丢包重传效率低等问题。
    主要特性:
  • 基于QUIC协议,一种基于UDP的传输协议,具有更快的连接建立时间和更好的拥塞控制机制。
  • 0-RTT连接建立,在某些情况下可以在第一次连接时就开始发送数据,减少延迟
  • 连接迁移,即使网络环境发生变化,连接也可以保持。
  • 前向纠错,在数据传输过程中可以检测和纠正一些错误,减少重传次数,提高传输效率
    使用场景:
  • 对延迟敏感的应用,如在线游戏、实时视频通信等,以及在网络环境不稳定的情况下,能够提供更好的性能和可靠性。

http协议请求的方法详解

HTTP 协议有多种请求方法,以下是主要的几种:

GET

用途:

  • 用于请求指定的资源。这是最常见的请求方法,当你在浏览器中输入网址并访问时,通常会发送GET请求。
    特点:
  • GET请求可以被缓存,除非指定了特定的缓存控制头部。
  • GET请求的参数通常附加在URL中,这使得它们可以被轻松地分享和书签,但也可能会暴露敏感信息,并且有长度限制。
  • GET请求是安全的,即它不会对服务器上的资源进行修改。

POST

用途:

  • 通常用于向服务器提交数据,以创建或更新资源。例如,在提交表单、上传文件等场景中经常使用。
    特点:
  • POST请求的数据通常放在请求体中,而不是URL中,因此可以传输更大量的数据,并且相对更安全,不容易暴露敏感信息。
  • P0ST请求一般不会被缓存。

PUT

用途:

  • 用于更新服务器上的资源,PUT请求通常会将整个资源进行替换。
    特点:
  • PUT请求是幂等的,即多次发送相同的PUT请求应该产生相同的结果。

DELETE

用途

  • 用于删除服务器上的指定资源。
    特点:
  • DELETE请求也是幂等的,多次删除同一个资源应该产生相同的结果,即资源被删除后再次删除不会产生错误。

用途:

  • 与GET请求类似,但只返回头部信息,不返回资源的主体内容。
    特点:
    可以用于检查资源的存在性、获取资源的元信息(如最后修改时间、内容长度等而无需下载整个资源,从而节省带宽和时间。

OPT IONS

用途:

  • 用于获取服务器支持的HTTP请求方法和其他选项。
    特点:
  • 客户端可以通过OPTIONS请求了解服务器对特定资源的访问权限和支持的操作。

TRACE

用途:

  • 用于诊断和调试,客户端可以发送TRACE请求来查看请求在网络中经过的路径。
    特点
  • 通常在开发和测试环境中使用,以了解请求的处理过程。

HTTP协议之urI

协议://域名:端口/虚拟目录/文件名?参数#锚点

例如:
https://www.baidu.com/web/579.html?replytocom=22#respond
相关推荐
冷眼看人间恩怨1 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
fantasy_arch2 小时前
CPU性能优化-磁盘空间和解析时间
网络·性能优化
Clockwiseee2 小时前
php伪协议
windows·安全·web安全·网络安全
njnu@liyong3 小时前
图解HTTP-HTTP报文
网络协议·计算机网络·http
ZachOn1y3 小时前
计算机网络:应用层 —— 应用层概述
计算机网络·http·https·应用层·dns
是Dream呀3 小时前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
xcLeigh3 小时前
网络安全 | 防火墙的工作原理及配置指南
安全·web安全
kaixin_learn_qt_ing4 小时前
了解RPC
网络·网络协议·rpc
安全小王子5 小时前
Kali操作系统简单介绍
网络·web安全
光路科技5 小时前
八大网络安全策略:如何防范物联网(IoT)设备带来的安全风险
物联网·安全·web安全