Http响应报文介绍

所有HTTP消息(请求与响应)中都包含:

  • 一个或几个单行显示的消息头(header),

    在消息头部分主要包含:响应行信息和响应头信息

  • 一个强制空白行;

  • 最后是响应消息主体;

以下是一个典型的HTTP响应:

HTTP/1.1 200 OK
-- 响应行信息
Date: Tue, 19 Apr 2011 09:23:32 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Set-Cookie:  tracking=tI8rk7joMx44S2Uu85nSWc
X-AspNet-Version:  2.0.50727
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type:  text/html; charset=utf-8
Content-Length:  1067
-- 响应头信息
空行
<IDOCTYPE html PUBLIC一//W3C//DTD XHTML 1.0 Transitional//EN二http://
www.w3.org/TR/xhtmll/DTD/xhtmll一transitional.dtd"><html xmlns="http://
www.w3.ora/1999/xhtml* ><head><title>Your details</title>
-- 响应主体信息

一、响应报文部分区域详细解读:响应行

HTTP响应报文中请求行包含三个信息部分:

HTTP响应报文中常用的协议版本:

因特网上常用的HTTP版本为1.0和1.1,多数浏览器默认使用1.1版本,在有些特殊场景下还会使用2.0版本进行通讯

这三个版本的规范之间存在一些差异;然而,当攻击Web应用程序时,渗透测试员可能遇到的唯一差异是1.1版本必须使用Host请求头。

HTTP响应报文中常用的状态编码:

每条HTTP响应消息都必须在第一行中包含一个状态码,说明请求的结果。根据代码的第一位数字,可将状态码分为以下5类:

还有大量特殊状态码,其中许多状态码仅用在特殊情况下。

下面列出渗透测试员在攻击Web应用程序时最有可能遇到的状态码及其相关的原因短语:

  • 状态码信息:100 Continue

当客户端提交一个包含主体的请求时,将发送这个响应。

该响应表示已收到请求消息头,客户端应继续发送主体。请求完成后,再由服务器返回另一个响应。

  • 状态码信息:200 OK

本状态码表示已成功提交请求,且响应主体中包含请求结果。

  • 状态码信息:201 Created

PUT请求的响应返回这个状态码,表示请求已成功提交。

  • 状态码信息:301 Moved Permanently

本状态码将浏览器永久重定向到另外一个在Location消息头中指定的URL。以后客户端应使用新URL替换原始URL。

  • 状态码信息:302 Found

本状态码将浏览器暂时重定向到另外一个在Location消息头中指定的URL。客户端应在随后的请求中恢复使用原始URL.

  • 状态码信息:304 Not Modified

本状态码指示浏览器使用缓存中保存的所请求资源的副本。

服务器使用If-Modified-Since与If-None-Match消息头确定客户端是否拥有最新版本的资源。

  • 状态码信息:400 Bad Request

本状态码表示客户端提交了一个无效的HTTP请求。

当以某种无效的方式修改请求时(例如在URL中插人一个空格符),可能会遇到这个状态码。

  • 状态码信息:401 Unauthorized

服务器在许可请求前要求HTTP进行身份验证。WWW-Authenticate消息头详细说明所支持的身份验证类型。

  • 状态码信息:403 Forbidden

本状态码指出,不管是否通过身份验证,禁止任何人访问被请求的资源。

  • 状态码信息:404 Not Found

本状态码表示所请求的资源并不存在。

  • 状态码信息:405 Method Not Allowed

本状态码表示指定的URL不支持请求中使用的方法。

例如,如果试图在不支持PUT方法的地方使用该方法,就会收到本状态码。

  • 状态码信息:413 Request Entity Too Large

本状态码表示请求主体过长,服务器无法处理。

  • 状态码信息:414 Request URI Too Long

与前一个响应类似,本状态码表示请求中的URL过长,服务器无法处理。

  • 状态码信息:500 Internal Server Error

本状态码表示服务器在执行请求时遇到错误。

当提交无法预料的输入、在应用程序处理过程中造成无法处理的错误时,通常会收到本状态码。

应该仔细检查服务器响应的所有内容,了解与错误性质有关的详情。

  • 状态码信息:503 Service Unavailable

本状态码表示尽管Web服务器运转正常,并且能够响应请求,但服务器访问的应用程序还是无法作出响应。

应该进行核实,是否因为执行了某种行为而造成这个结果。

二、响应报文部分区域详细解读:响应头

  • 响应头字段解读:Server

消息头中包含一个旗标,指明所使用的Web服务器软件。

有时还包括其他信息,如所安装的模块和服务器操作系统。其中包含的信息可能并不准确。

  • 响应头字段解读:Set-Cookie

消息头向浏览器发送另一个cookie,它将在随后向服务器发送的请求中由Cookie消息头携带。

  • 响应头字段解读:Pragma

消息头指示浏览器不要将响应保存在缓存中。Expires消息头指出响应内容已经过期,因此不应保存在缓存中。

当返回动态内容时常常会发送这些指令,以确保浏览器随时获得最新内容。

  • 响应头字段解读:Content-Type

几乎所有的HTTP响应在消息头后的空白行下面都包含消息主体,Content-Type消息头表示这个消息主体中包含一个HTML文档。

  • 响应头字段解读:Content-Length

消息头规定消息主体的字节长度。

  • 响应头字段解读:ETag

浏览器根据HTTP请求的ETag验证请求的资源是否发生了改变,如果它未发生变化,服务器将返回“304 Not Modified”响应;

并且资源从浏览器缓存中读取,这样就不必再次下载请求。

  • 响应头字段解读:Vary:Accept-Encoding

表示网站一般启用了GZip压缩

  • 响应头字段解读:Expires

是RFC 2616(HTTP/1.0)协议中表示作用于网页缓存相关字段,用来控制缓存信息的失效日期;

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多叉树题目:收集树上所有苹果的最少时间

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;收集树上所有苹果的最少时间 出处&#xff1a;1443. 收集树上所有苹果的最少时间 难度 6 级 题目描述 要求 给定一个有 n \texttt{n} n 个结点的…

Linux系统启动过程详解

启动过程是指计算机从开机自检到操作系统完全加载的一系列动作。深入理解启动过程对于有效解决启动问题、提升系统性能以及高效管理系统的启动组件至关重要。例如&#xff0c;可以帮助我们识别和处理在启动过程中可能出现的诸如硬件故障、配置错误等问题。例如帮助我们个性化定…

计算机组成原理【CO】Ch4 指令系统

文章目录 考纲第四章 指令系统4.1 指令格式4.2 指令的寻址方式4.3 程序的机器级代码表示4.4 CISC和RISC的基本概念 【※】扩展码指令计算【※】指令系统【指令格式】【※】指令的寻址方式【※】指令的机器级代码表示x86汇编指令&#xff08;重点关注 intel 格式&#xff09;MIP…

Jmeter参数化的 4 种方式用法总结

参数化就是用变量代替数据的过程&#xff0c;总结参数化的4种方式&#xff1a; 1、用户自定义变量 用户自定义变更有两种方法&#xff1a; &#xff08;1&#xff09;在测试计划面板中的用户定义的变量设置 说明&#xff1a;在此用户定义的变量对所有测试计划都会生效 &…

如何通过Linux pciehp sysfs接口控制PCIe Slot电源状态?-3

pciehp sysfs接口电源控制与NVME驱动卸载的区别 从NVMe SSD设计本身而言&#xff0c;当通过pciehp sysfs接口对PCIe插槽执行Power Off操作时&#xff0c;由于NVMe SSD作为PCIe设备&#xff0c;其电源供应是直接依赖于所连接的PCIe插槽提供的。当插槽电源被关闭时&#xff0c;会…

#382. 工资计算系统(继承和派生)

水个文 代码如下&#xff1a; #include <cstdio> #include <cstdlib> #include <iostream> using namespace std;const double RATIO 0.01; const double SALARY_PER_YEAR 35; const double BASE_SALARY 1000;// class Employer{ public:int workAge, sa…

【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题

文章目录 单例模式一、单例模式1.饿汉模式2.懒汉模式&#xff08;单线程&#xff09;3.懒汉模式&#xff08;多线程&#xff09;改进 4.指令重排序1.概念2.question:3.解决方法4总结&#xff1a; 单例模式 一、单例模式 单例&#xff0c;就是单个实例 在有些场景中&#xff0c…

蓝色系UX/UI设计求职面试作品集模版figmasketchPPT可编辑源文件

页面数量: 20P 页面尺寸:1920*1080PX 交付格式&#xff1a;figma、sketch、PPT 赠送文件&#xff1a;24款高质量样机&#xff08;PSD格式&#xff09; 该作品集虽然只有20页&#xff0c;但可根据需求复制作品集里已有的页面作为模版来扩展您的设计项目 该作品集模版可编辑可修…

设计模式在芯片验证中的应用——策略

1. 策略模式 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 在RTL设计中可能包含了复杂的多个访问仲裁逻辑&#xff0c;使用了多种算法来确定访问内存优先级顺序&am…

【CMake】CMake从入门到实战系列(九)——CMake中的字符串处理指令和运算符

文章目录 一、字符串处理指令string基本语法参数含义 二、字符串运算符字符串比较字符串连接字符串替换字符串长度字符串截取字符串转换大小写字符串正则表达式匹配和替换字符串查找子字符串字符串中查找正则表达式匹配的内容字符串附加 三 、示例 一、字符串处理指令string 在…

【Git教程】(十)版本库之间的依赖 —— 项目与子模块之间的依赖、与子树之间的依赖 ~

Git教程 版本库之间的依赖 1️⃣ 与子模块之间的依赖2️⃣ 与子树之间的依赖&#x1f33e; 总结 在 Git 中&#xff0c;版本库是发行单位&#xff0c;代表的是一个版本&#xff0c;而分支或标签则只能被创建在版本库这个整体中。如果一个项目中包含了若干个子项目&#xff0c;…

【Java】图片处理工具ImageMagick简介及其在Java中的应用

ImageMagick是一款强大的图像处理软件&#xff0c;它可以用于创建、编辑、合并和转换图像。它支持超过200种图像格式&#xff0c;并且提供了丰富的功能&#xff0c;包括图像缩放、旋转、裁剪、加水印、添加特效等。ImageMagick还支持批量处理图像&#xff0c;可以通过命令行或者…