tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)
任务一:What is HTTP(S)?(什么是http(s))

1.What is HTTP? (HyperText Transfer Protocol)(什么是 HTTP?(超文本传输协议))
http是你查看网站的时候遵循的协议。由 Tim Berners-Lee 和他的团队在 1989 年至 1991 年间开发。HTTP 是用于与 Web 服务器通信以传输网页数据(无论是 HTML、图像、视频等)的规则集。
2.What is HTTPS? (HyperText Transfer Protocol Secure)(什么是 HTTPS? (安全超文本传输协议))
HTTPS 是 HTTP 的安全版本。 HTTPS 数据是加密的,因此它不仅可以阻止人们看到您接收和发送的数据,还可以确保您正在与正确的 Web 服务器通信,而不是冒充它。

任务二:Requests And Responses(请求和响应)
What is a URL? (Uniform Resource Locator)(什么是 URL?(统一资源定位器))
如果您曾经使用过 Internet,那么您以前也使用过 URL。URL 主要是有关如何访问 Internet 上的资源的指令。下图显示了 URL 及其所有功能的外观(它不会在每个请求中使用所有功能)。

Scheme: 这指示使用什么协议来访问资源,例如 HTTP、HTTPS、FTP(文件传输协议)。
User: 某些服务需要身份验证才能登录,您可以在 URL 中输入用户名和密码才能登录。
Host: 您要访问的服务器的域名或 IP 地址。
Port: 您要连接的端口,通常为 80 用于 HTTP,443 用于 HTTPS,但这可以托管在 1 - 65535 之间的任何端口上。
Path: 您尝试访问的资源的文件名或位置。
Query String: 可以发送到请求路径的额外信息位。例如,/blog?id=1 将告知博客路径您希望接收 ID 为 1 的博客文章。
Fragment: 这是对请求的实际页面上的位置的引用。这通常用于内容较长的页面,并且可以将页面的某个部分直接链接到该页面,因此用户一旦访问该页面即可查看该页面。
Making a Request提出请求

请求示例:
GET / HTTP/1.1
Host: tryhackme.com
User-Agent: Mozilla/5.0 Firefox/87.0
Referer: https://tryhackme.com/
要分解此请求的每一行,请执行以下操作:
第 1 行:此请求将发送 GET 方法( 在 HTTP 方法 任务中,有更多相关信息),请求带有 / 的主页,并告知 Web 服务器我们使用的是 HTTP 协议版本 1.1。
第 2 行:我们告诉 Web 服务器我们希望网站 tryhackme.com
第 3 行:我们告诉 Web 服务器我们使用的是 Firefox 版本 87 浏览器
第 4 行:我们告诉 Web 服务器,将我们推荐到此网页的网页是 https://tryhackme.com
第 5 行:HTTP 请求始终以空行结尾,以通知 Web 服务器请求已完成。
响应示例:
HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98<html>
<head><title>TryHackMe</title>
</head>
<body>Welcome To TryHackMe.com
</body>
</html>
第 1 行:HTTP 1.1 是服务器正在使用的 HTTP 协议版本,然后是 HTTP 状态代码(在本例中为“200 Ok”),这告诉我们请求已成功完成。
第 2 行:这告诉我们 Web 服务器软件和版本号。
第 3 行:Web 服务器的当前日期、时间和时区。
第 4 行:Content-Type 标头告诉客户端将发送哪种信息,例如 HTML、图像、视频、pdf、XML。
第 5 行:Content-Length 告诉客户端响应的数据有多少,这样我们就可以确认没有丢失数据。
第 6 行:HTTP 响应包含一个空行,用于确认 HTTP 响应的结束。
第 7-14 行:已请求的信息,在本例中为主页。

任务三:HTTP Methods(HTTP方法)
HTTP 方法是客户端在发出 HTTP 请求时显示其预期操作的一种方式。HTTP 方法有很多,但我们将介绍最常见的方法,但大多数情况下您将处理 GET 和 POST 方法。
GET Request获取请求
这用于从 Web 服务器获取信息。
POST Request发布请求
这用于将数据提交到 Web 服务器并可能创建新记录
PUT Request放请求
这用于将数据提交到 Web 服务器以更新信息
DELETE Request 删除请求
这用于从 Web 服务器中删除信息/记录。

任务四:HTTP Status Codes(HTTP状态码)
在上一个任务中,您了解到,当 HTTP 服务器响应时,第一行始终包含一个状态代码,告知客户端其请求的结果以及可能如何处理该请求。这些 状态代码可以分为 5 个不同的范围:
HTTP 协议状态代码:
| 100-199 - 信息响应 | 这些 发送来告诉客户端他们请求的第一部分已经 接受,他们应该继续发送其请求的其余部分。 这些代码不再很常见。 |
| 200-299 - 成功 | 此状态代码范围用于告诉客户端其请求成功。 |
| 300-399 - 重定向 | 这些 用于将客户端的请求重定向到另一个资源。这可以 要么访问不同的网页,要么完全访问不同的网站。 |
| 400-499 - 客户端错误 | 用于通知客户端其请求有错误。 |
| 500-599 - 服务器错误 | 这 保留给服务器端发生的错误,并且通常 表示处理请求的服务器存在相当大的问题。 |
常见的 HTTP 状态代码:
| 200 - 正常 | 请求已成功完成。 |
| 201 - 已创建 | 已创建资源(例如,新用户或新博客文章)。 |
| 301 - 永久移动 | 这 将客户端的浏览器重定向到新网页或告诉搜索引擎 页面已移动到其他地方,而是查看那里。 |
| 302 - 找到 | 与上述永久重定向类似,但顾名思义,这只是一个 临时更改,并且在不久的将来可能会再次更改。 |
| 400 - 错误请求 | 这 告诉浏览器其 请求。如果 Web 服务器资源是 被请求需要某个 Client 端没有的某个参数 发送。 |
| 401 - 未授权 | 你不是 当前允许查看此资源,直到您授权使用 Web 应用程序(通常是用户名和密码)。 |
| 403 - 禁止 | 无论您是否登录,您都无权查看此资源。 |
| 405 - 不允许使用 | 资源不允许此方法请求,例如,您发送 GET 请求发送到资源 /create-account (当它需要 POST 时) 请求。 |
| 404 - 未找到页面 | 您请求的页面/资源不存在。 |
| 500 - 内部服务错误 | 服务器在您的请求中遇到了某种错误,它不知道如何正确处理。 |
| 503 - 服务不可用 | 此服务器无法处理您的请求,因为它已过载或停机进行维护。 |

任务五:Headers(HTTP请求头)
Common Request Headers通用请求标头
Host: 一些 Web 服务器托管多个网站,因此通过提供主机标头,您可以告诉它您需要哪个网站,否则您只会收到服务器的默认网站。
User-Agent: 这是您的浏览器软件和版本号,告诉 Web 服务器您的浏览器软件有助于它为您的浏览器正确格式化网站,并且 HTML、JavaScript 和 CSS 的某些元素仅在某些浏览器中可用。
Content-Length: 将数据发送到 Web 服务器(例如在表单中)时,内容长度会告知 Web 服务器 Web 请求中预期有多少数据。这样,服务器可以确保它不会丢失任何数据。
Accept-Encoding: 告诉 Web 服务器浏览器支持哪些类型的压缩方法,以便可以缩小数据以通过 Internet 传输。
Cookie: 身份验证
Common Response Headers常见响应标头
These are the headers that are returned to the client from the server after a request.
Set-Cookie: 要存储的信息将在每个请求中发送回 Web 服务器
Cache-Control:在浏览器再次请求响应之前,将响应内容存储在浏览器的缓存中多长时间。
Content-Type: 这会告诉客户端返回什么类型的数据,即 HTML、CSS、JavaScript、图像、PDF、视频等。使用 content-type 标头,浏览器就可以知道如何处理数据。
Content-Encoding: 通过 Internet 发送数据时,使用了什么方法来压缩数据以使其更小。

任务六:Cookies(cookies值)
您以前可能听说过 cookie,它们只是存储在您计算机上的一小段数据。当您从 Web 服务器收到 “Set-Cookie” 标头时,将保存 Cookie。然后,您发出的每个进一步请求,您都会将 cookie 数据发送回 Web 服务器。由于 HTTP 是无状态的(不会跟踪您以前的请求),因此 cookie 可用于提醒 Web 服务器您是谁、网站的一些个人设置或您以前是否访问过该网站。让我们看一下这个 HTTP 请求示例:


任务七:Making Requests(发起请求)


您是否希望通过导览来了解有关如何开始的更多信息?

改变你的请求方式

改变你的url

Update your GET & POST parameters here.
第一个问题


第二个问题



第三个问题


第四个问题



第五个问题



相关文章:
tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)
任务一:What is HTTP(S)?(什么是http(s)) 1.What is HTTP? (HyperText Transfer Protocol)(什么是 HTTP?(超文本传输协议)) http是你查看网站的时候遵循的…...
探索 Plotly:一个强大的交互式数据可视化库
探索 Plotly:一个强大的交互式数据可视化库 数据可视化是数据分析过程中不可或缺的一部分,它能帮助我们更直观地理解数据,发现数据中的趋势和规律。在众多可视化库中,Plotly 是一个非常强大的工具,它以其交互式、易用…...
Oracle 查询表占用空间(表大小)的方法
目录 概述方法一:使用 dbms_space 包方法二:查询 dba_extents 视图方法三:查询 dba_segments 视图总结 1. 概述 在Oracle数据库管理中,了解特定表或索引所占用的空间对于性能调优、存储规划以及资源分配至关重要。本文档介绍了三…...
机器人国际会议IROS论文latex模板
机器人国际会议IROS论文latex模板 文档 root.tex 可以配置为 US Letter 纸或 A4。请注意以下重要行:\documentclass[letterpaper, 10 pt, Conference]{ieeeconf} % 如果需要 a4paper,请注释掉此行%\documentclass[a4paper, 10pt, Conference]{ieeeconf} …...
雪泥鸿爪和屈指可数
paw这个单词,表示“爪或手”,是一个和hoof相对的单词: hoof n.(马等动物的)蹄paw n.爪子;(动物的)爪;(人的)手 v.挠,抓;动手动脚 所以,当你理解了 paw 和 hoof 是相对的概念时&…...
2024年度个人总结
一转眼已经2024年度最后一个月了,今年基本没有在CSDN发布内容,包括其他平台(B站),倒是在其他地方(我的个人网站和V2EX)发布一些零碎的东西,主要是因为今年换了工作后太累了ÿ…...
ChatGPT接口测试用例生成的流程
通常,使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤。 收集接口信息 收集接口的相关文档和信息,如接口名称、请求方法、请求参数、返回结果等。这些是ChatGPT生成测试用例需要的输入信息。 这一步骤的重要性不可忽视,因为它为Chat…...
【读书笔记】《论语别裁》真人和假人
一、内容摘要 在《论语别裁》第01章中,作者探讨了“真人”与“假人”的概念,借鉴于庄子的思想,强调真正有道德修养且懂得人生真谛的人被称为“真人”,而那些未达到道德最高标准的人则称为“假人。孔子所提倡的“学”不仅仅是书本…...
JS字符串方法汇总
String.anchor //创建一个带有名称的 <a> 元素字符串 //已弃用 let str test str.anchor(name) //<a name"name">test</a>String.at let str 1234567 str.at(0) //1 str.at(1) //2 str.at(-1) //7 str.at(-2) //6String.big //已弃用 let …...
CentOs7使用yum安装docker
安装docker 一、安装docker依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2二、添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i sdownload.docker.commirrors.…...
蓝桥杯刷题——day8
蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di个单位时间,即它最早可以于 Ti时刻开始降落&am…...
如何使用 WebAssembly 扩展后端应用
1. WebAssembly 简介 随着互联网的发展,越来越多的应用借助 Javascript 转到了 Web 端,但人们也发现,随着移动互联网的兴起,需要把大量的应用迁移到手机端,随着手端的应用逻辑越来越复杂,Javascript 的解析…...
BaseCTF_web_week3
复读机 输入的东西会在下方显示出来,wp说是简单的SSTI,这里来学习一下SSTI SSTI模板注入 根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的 用户的输入返回时会经过一个模板渲染,SSTI漏洞就是用户插入了可以破坏模板…...
模型数据算法概论
模型数据算法是一类使用数据来构建、优化或训练数学模型的算法,常用于数据科学、机器学习和人工智能领域。它们的核心目标是从数据中提取模式或关系,以便在预测、分类或优化任务中应用。以下是一个简要的概述: 1. 模型 模型是用来描述数据特…...
什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?
将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作,从而能快速的做出更好的决策。 目 录: ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…...
Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型
Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型 Sigrity System SI Parallel Bus Analysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍pba_simple_em模板的使用,具体操作如下 双击启动System SI启动界…...
MacOS下PostIn安装配置指南
PostIn是一款开源免费的接口管理工具, 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业,实现对数据和系统的完全控制。   1、MacOS服务端安装 Mac安装包下载地址:下载Mac安…...
【Leetcode 每日一题】2545. 根据第 K 场考试的分数排序
问题背景 班里有 m m m 位学生,共计划组织 n n n 场考试。给你一个下标从 0 0 0 开始、大小为 m n m \times n mn 的整数矩阵 s c o r e score score,其中每一行对应一位学生,而 s c o r e [ i ] [ j ] score[i][j] score[i][j] 表示…...
一文速通 IIC I2C子系统驱动 通信协议原理 硬件 时序 深度剖析
本文作为一个引入,作用是让读者理解熟知IIC协议关键内容,结合实际手册内容,深度解析协议本质,作为后续嵌入式linux驱动IIC子系统的一个铺垫。 目录 1. 硬件连接 2. IIC传输时序 2.1.写操作 2.2.读操作 2.3.I2C信号 3.IIC协议…...
HarmonyOS(72)事件拦截处理详解
事件拦截 1、参考资料2、HitTestMode3、onTouchIntercept、onTouch、onClick事件执行顺序3.1、系统默认事件传递顺序3.2、子组件拦截事件1、参考资料 HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案HitTestModea…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
