Http响应报文介绍

news2024/9/24 9:17:36

所有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.coloradmin.cn/o/1596094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MATLAB源码-第15期】基于matlab的MSK的理论误码率与实际误码率BER对比仿真,采用差分编码IQ调制解调。

1、算法描述 在数字调制中&#xff0c;最小频移键控&#xff08;Minimum-Shift Keying&#xff0c;缩写&#xff1a;MSK&#xff09;是一种连续相位调制的频移键控方式&#xff0c;在1950年代末和1960年代产生。[1] 与偏移四相相移键控&#xff08;OQPSK&#xff09;类似&…

nodejs解析url参数

需要引入 url 模块&#xff1b; var http require(http); var url require(url);http.createServer(function (req, res) {res.writeHead(200, {Content-Type: text/plain});// 解析 url 参数var params url.parse(req.url, true).query;res.write("name: " par…

解决Git 不相关的分支合并

可以直接调到解决方案,接下来是原因分析和每步的解决方式 问题原因: 我之前在自己本机创建了一个初始化了Git仓库,后来有在另一个电脑初始化仓库,并没有clone自己在本机Git远程仓库地址,导致Git历史版本不相关 错误信息 From https://gitee.com/to-uphold-justice-for-other…

MES管理系统中生产物料管理的设计

在数字化工厂建设的浪潮中&#xff0c;MES管理系统作为执行层的核心管理系统&#xff0c;其重要性日益凸显。特别是在生产物料管理方面&#xff0c;MES管理系统不仅承担物料计划指令的接收&#xff0c;还负责物料派工及使用反馈的数据收集&#xff0c;其业务流程的设计对数字化…

【Leetcode】2923. 找到冠军 I

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 一场比赛中共有 n n n 支队伍&#xff0c;按从 0 0 0 到 n − 1 n - 1 n−1 编号。 给你一个下标从 0 0 0 开始、大小为 n ∗ n n * n n∗n 的二维布尔矩阵 g r i d grid gr…

改进的注意力机制的yolov8和UCMCTrackerDeepSort的多目标跟踪系统

基于yolov8和UCMCTracker/DeepSort的注意力机制多目标跟踪系统 本项目是一个强大的多目标跟踪系统&#xff0c;基于[yolov8]链接和[UCMCTracker/DeepSot]/链接构建。 &#x1f3af; 功能 多目标跟踪&#xff1a;可以实现对视频中的多目标进行跟踪。目标检测&#xff1a;可以实…

Linux系统搭建FastDFS文件服务结合内网穿透实现公网访问本地文件

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【Tars-go】腾讯微服务框架学习使用01--初始化服务

1 初始INIT-Demo运行 按照官网描述 go get 安装框架依赖 # < go 1.16 go get -u github.com/TarsCloud/TarsGo/tars/tools/tarsgo go get -u github.com/TarsCloud/TarsGo/tars/tools/tars2go # > go 1.16 go install github.com/TarsCloud/TarsGo/tars/tools/tarsgolat…

常见Spring相关工具报错-源码分析

常见Spring相关工具报错-源码分析 1. Resouce Bundle 国际化 yml 配置不生效 1. Resouce Bundle 国际化 yml 配置不生效 1️⃣ 配置yml 2️⃣ 报错信息 2024-04-15 15:13:57.828 [http-nio-8090-exec-1] WARN o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - [doResolveHan…

spring boot 集成rocketMq + 基本使用

1. RocketMq基本概念 1. NameServer 每个NameServer结点之间是相互独立&#xff0c;彼此没有任何信息交互 启动NameServer。NameServer启动后监听端口&#xff0c;等待Broker、Producer、Consumer连接&#xff0c; 相当于一个路由控制中心。主要是用来保存topic路由信息&#…

python实验4

一、实验目的 掌握和使用进程池掌握和使用多线程掌握和使用互斥锁掌握协程的使用 二、实验内容 使用进程池计算区间内素数个数使用多线程计算区间内合数个数互斥锁的设计和使用异步状态转换器 三、实验环境 在Educoder平台进行实验 四、实验要求 根据每个实训的每个关卡要…

springCloudAlibaba集成seata实战(分布式事物详解)

一、分布式事务 1. 事务介绍 1.1 基础概念 事务&#xff1a;保证我们多个数据库操作的原子性&#xff0c;多个操作要么都成功要么都不成功 事务ACID原则 A&#xff08;Atomic&#xff09;原子性&#xff1a;构成事务的所有操作&#xff0c;要么都执行完成&#xff0c;要么全部…

使用冒泡排序模拟实现qsort函数

目录 冒泡排序qsort函数的使用1.使用qsort函数排序整型数据2.使用qsort函数排序结构数据 冒泡排序模拟实现qsort函数今日题目1. 字符串旋转结果2.杨氏矩阵3.猜凶手4.杨辉三角 总结 冒泡排序 冒泡排序的核心思想是:两两相邻的元素进行比较 代码如下: //⽅法1 void bubble_so…

ros-param添加参数控制rviz显示掉帧问题

在ros中有一套参数系统可以直接写到launch文件中&#xff0c;这样非常方便&#xff0c;不需要编译就能直接用&#xff0c;这对于c来说非常的有好&#xff0c;这里记录一下如何使用。 主要步骤如下&#xff1a; 首先初始化节点 使用nodehandle进行管理&#xff0c;然后通过param…

停车场道闸系统的实施流程有哪些安装注意事项?

随着城市交通压力的不断增加&#xff0c;停车场道闸系统的安装与优化成为了提升城市交通效率的关键环节。不同类型的停车场&#xff0c;如社区、园区、公共交通站点以及商业综合体等&#xff0c;都有其独特的运营特点和用户需求。因此&#xff0c;了解并掌握停车场道闸系统安装…

腾讯客户端开发实习一面

听说腾讯25年5000offer&#xff0c;我就去了...投完简历&#xff0c;当天晚上做完测评&#xff0c;第二天下午打电话约了第三天面试&#xff0c;额流程很快&#xff0c;快到第三天就寄了... 写在这里做个记录&#xff0c;也可以给学习学妹们经验&#xff0c;文末也有大厂面经合…

VSCode中vue的packag.json报错:unable to load schema from‘ http://json.schema‘...问题解决

package.json有这个报错&#xff0c;类似于这种问题一般是网络连接有问题&#xff0c;无法加载重启一下就好。 但是如果是没有网络或者云桌面等环境不能连接外网&#xff0c;就在设置中把这个设置一下&#xff0c;这样就不报错了&#xff0c;根据需要选择处理。

element问题总结之el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位问题

el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位 效果图前言解决方案纵向滑动滚动条滑动到底部的错位解决横向滚动条滑动到最右侧的错位解决 效果图 前言 在使用el-table固定行的时候移动滚动条会发现移动到底部或者移动到最右侧的时候会出现表头和内容错位或…

CentOS7使用Docker搭建Joplin Server并实现多端同步与公网使用本地笔记

文章目录 1. 安装Docker2. 自建Joplin服务器3. 搭建Joplin Sever4. 安装cpolar内网穿透5. 创建远程连接的固定公网地址 Joplin 是一个开源的笔记工具&#xff0c;拥有 Windows/macOS/Linux/iOS/Android/Terminal 版本的客户端。多端同步功能是笔记工具最重要的功能&#xff0c;…