当前位置: 首页 > news >正文

渗透测试---网络基础之HTTP协议与内外网划分

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果

目录

一、HTTP协议各版本介绍

二、HTTP请求的方式

三、HTTP之url

四、HTTP状态码

五、内外网划分


引言:

        HTTP(Hypertext Transfer Protocol)即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP协议工作与客户端-服务端(browser/sever)B/S架构上,浏览器作为http客户端通过url向http服务端即web服务器发送所有请求。web服务器根据接收到的请求后,向客户端发送响应信息

一、HTTP协议各版本介绍

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

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

HTTP/1.1
为了解决 HTTP/1.0 连接频繁建立和断开的问题,提高网页加载速变和性能。
主要特性:
持久连接(Keep-Alive),允许在一个 TCP 连接上发送多个请求和响应,减少连接建立的开销。
管道化(Pipelining),客户端可以在一个连接上连续发送多个请求,但服务器的响应顺序必须与请求顺序一致
增加了更多的请求方法,如 PUT、DELETE、OPTIONS 等
引入缓存控制机制,通过头部字段控制缓存的使用。

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

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

二、HTTP请求的方式

GET
​ 用途:用于请求指定的资源。这是最常见的请求方法,当你在浏览器中输入网址并访问时,通常会发送 GET 请求。
​ 特点:

  • ​    GET 请求可以被缓存,除非指定了特定的缓存控制头部。
  • ​    GET 请求的参数通常附加在 URL 中,这使得它们可以被轻松地分享和书签,但也可能会暴露敏感信息,并且有长度限制。
  • ​    GET 请求是安全的,即它不会对服务器上的资源进行修改。

POST
​ 用途:通常用于向服务器提交数据,以创建或更新资源。例如,在提交表单、上传文件等场景中经常使用。
​ 特点:

  • ​ POST 请求的数据通常放在请求体中,而不是 URL 中,因此可以传输更大量的数据,并且相对更安全,不容易暴露敏感信息。
  • ​ POST 请求一般不会被缓存。

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

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

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

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

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

三、HTTP之url

https://www.baidu.com:8080/web/579.html?replytocom=22#respond
协议://域名:端口/虚拟目录/文件名?参数#锚点


四、HTTP状态码

HTTP 协议状态码用于表示服务器对请求的处理结果。以下是常见的状态码分类介绍:

1xx 信息性状态码

100 Continue:表示目前为止一切正常,客户端可以继续发送请求或者忽略这个响应。一般在客户端发送 POST 请求时,当请求体较大,服务器可能先返回这个状态码,表示可以继续发送请求体。

2xx 成功状态码

200 OK:最常见的成功状态码,表示请求已成功,服务器已成功返回请求的数据。

201 Created:表示请求已成功,并在服务器上创建了新的资源。通常在 POST 请求用于创建资源时返回。

204 No Content:表示请求已成功处理后,表示资源已被更新或删除,但没有返回任何内容。通常用于 PUT 或 DELETE 请求成功

3xx 重定向状态码

301 Moved Permanently:表示请求的资源已被永久移动到新的 URL ,客户端应使用新的URL进行后续的请求。

302 Found:表示请求的资源临时被移动到另一个URL,客户端应继续使用原有URL进行请求,但可以根据响应中的Location头部字段进行重定向。

304 Not Modified:表示资源未被修改,客户端可以使用缓存的版本。通常在客户端发送条件请求(如带有 If-Modified-Since 或 If- None-Match 头部)时返回。

4xx 客户端错误状态码

400 Bad Request:表示客户端发送的请求有语法错误或无法被服务器理解。

401 Unauthorized:表示请求需要用户认证,通常是因为客户端没有提供有效的身份验证凭据。

403 Forbidden:表示服务器理解请求,但拒绝执行,通常是因为客户端没有足够的权限访问资源。

404 Not Found:表示服务器找不到请求的资源。

405 Method Not Allowed:表示请求的方法不被允许,例如使用了不支持的HTTP方法请求某个资源。

5xx 服务器错误状态码

500 Internal Server Error:表示服务器在处理请求时发生内部错误,通常是服务器端的程序出现的异常。

502 Bad Gateway:表示作为网关或代理的服务器在尝试执行请求时,从上游服务器几收到无效的响应。

503 Service Unavailable:表示服务器暂时无法处理请求,通常是由于服务器过载或正在进行维护。

504 Gateway Timeout:表示作为网关或代理的服务器在等待上游服务器响应时超时。

五、内外网划分

  内网(局域网)通常是指一个组织或机构内部的网络,它的范围相对较小,一般局限于一个办公室、一栋楼或者一个企业园区内。想要打进内网就要找到与外网有连接的机器,然后横向移动,例如有些打印机的端口都是开放的。社工信息收集也重要。。。

  外网(互联网)是指连接全球各地的网络,通常由互联网服务提供商(ISP)提供接入服务。外网的范围非常广泛,可以覆盖全球各个角落。

  公网地址也称为全球唯一IP 地址,是由互联网服务提供商(ISP)分配给用户的,可以在全球互联网上被唯一识别的地址。公网范围就是私网以外的范围。

特点:

  • 全球唯一性:每个公网地址在互联网范围内独一无二,用于区分不同的网络节点。
  • 可路由性:能够在互联网的路由器之间进行路由转发,使信息可以在全球互联网中传递。
  • 公共性:可被任何接入互联网的设备访问,没有访问限制(在符合网络规则和法律法规的前提下)。
  • 有限性:由于IPv4地址资源有限,公网地址的数量也是有限的,公网地址资源日益紧张

用途:

  • 服务器访问:用于服务器(如 Web 服务器、邮件服务器等),使全球用户能够访问服务器提供的服务。
  • 设备远程访问:允许用户从互联网的任何位置远程访问和控制设备,如远程办公场景下访问公司内部的计算机。
  • 互联网通信:作为设备在互联网上通信的身份标识,确保数据准确地发送到目标设备。

  私网地址也称为本地IP 地址,是在一个组织或机构内部使用的!P地址,不能在全球互联网上被直接访问。

特点

  • 内部使用:仅限于在一个特定的私有网络内部使用,不能直接用于与互联网通信。
  • 可复用性:不同的私有网络可以重复使用相同的私网地址范围,因为它们不会在互联网中产生冲突。
  • 安全性高:一定程度上隔离了内部网络与外部互联网,增强内部网络安全性。

用途

  • 内部网络:用于组建企业、学校或家庭的内部局域网,实现内部设备之间的通信和资源共享。
  • 保护隐私:在内部网络通信时,避免内部设备的真实 IP 地址暴露在互联网上,从而保护隐私。

常见私网地址范围:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255


好啦,本文的内容就到此结束了,希望对你有所帮助咯。。 

相关文章:

渗透测试---网络基础之HTTP协议与内外网划分

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果 目录 一、HTTP协议各版本介绍 二、HTTP请求的方…...

15分钟学 Go 第 45 天 : 使用Docker容器

第45天:使用Docker容器 目标 在本节中,我们将深入了解Docker及其基本用法,掌握如何使用Docker容器来简化开发和部署流程。 背景知识 Docker是一个开源平台,用于开发、运输和运行应用程序。它使我们能够使用容器技术将应用程序…...

DriveLM 论文学习

论文链接:https://arxiv.org/pdf/2312.14150 代码链接:https://github.com/OpenDriveLab/DriveLM 解决了什么问题? 当前,自动驾驶方案的性能仍然不足。一个必要条件就是泛化能力,需要模型能处理未经训练的场景或不熟…...

YoloV10改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码

论文介绍 CARAFE模块概述:本文介绍了一种名为CARAFE(Content-Aware ReAssembly of FEatures)的模块,它是一种用于特征上采样的新方法。应用场景:CARAFE模块旨在改进图像处理和计算机视觉任务中的上采样过程&#xff0…...

光模块基础知识

1. 光模块的封装 光模块是光收发模块的简称,主要根据不同的外型来区分,而在同一外型中,又有着多种规格;在数据通信领域,最常见的光模块(根据外型区分)分别是SFF、GBIC、SFP、和XFP、QSFP 、XEN…...

【go从零单排】Closing Channels通道关闭、Range over Channels

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,通道(channel)的关闭是一个重要…...

初始JavaEE篇 —— 文件操作与IO

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 目录 文件介绍 Java标准库中提供操作文件的类 文件系统操作 File类的介绍 File类的使用 文件内容操作 二进制文件的读写操作…...

GitLab实现 HTTP 访问和 SMTP 邮件发送

GitLab实现 HTTP 访问和 SMTP 邮件发送 本教程详细记录了如何配置 SMTP 邮件通知、实现外网 HTTP 访问,并分享在配置过程中遇到的问题及解决方法。 一、准备工作 安装 Docker:确保在 Synology NAS 上安装 Docker 应用。下载 GitLab 镜像:在…...

HarmonyOS ArkTS 下拉列表组件

Entry Component struct Index {defaultValue: string 下拉列表;// 定义选项数组&#xff0c;包含 value 和可选的 labeloptions: Array<SelectOption> [{ value: aaa },{ value: bbb },{ value: ccc },{ value: ddd },{ value: eee },{ value: fff },{ value: ggg },{…...

zabbix监控Linux系统

1. zabbix agent安装 #sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm #sudo dnf clean all #yum install zabbix-agent -y Running transaction test Transaction test succeeded. Running transactionPreparing …...

线性表-数组描述补充 迭代器(C++)

补充线性表数组实现的迭代器部分 知识点&#xff1a; typedef是C语言中的一个关键字&#xff0c;它的主要作用是为一种数据类型定义一个新的名字&#xff08;别名&#xff09;。 在 C 的 STL&#xff08;Standard Template Library&#xff09;中&#xff0c;迭代器是连接容…...

vue3 + element-plus 的 upload + axios + django 文件上传并保存

之前在网上搜了好多教程&#xff0c;一直没有找到合适自己的&#xff0c;要么只有前端部分没有后端&#xff0c;要么就是写的不是很明白。所以还得靠自己摸索出来后&#xff0c;来此记录一下整个过程。 其实就是不要用默认的 action&#xff0c;要手动实现上传方式 http-reque…...

dm 创建数据库实例【window】

参考链接&#xff1a;配置实例 1&#xff09;打开 DM 数据库配置助手 2&#xff09;按照默认的进行 字符串大小写敏感&#xff1a;譬如 mysql 默认是大小写不敏感&#xff0c;如果在迁移中还选择了 保持对象大小写&#xff0c;那么就会出现一种情况就是每次查询等带有表名的都…...

Docker实践与应用举例:从入门到进阶

Docker实践与应用举例&#xff1a;从入门到进阶 在云计算和微服务架构日益盛行的今天&#xff0c;Docker作为一种轻量级的容器化技术&#xff0c;凭借其高效、灵活、可移植的特点&#xff0c;迅速成为了开发和运维团队的首选工具。本文将通过深入浅出的方式&#xff0c;探讨Do…...

【LeetCode】【算法】560. 和为 K 的子数组

LeetCode 560. 和为 K 的子数组 题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 思路 思路&#xff1a;前缀和 定义数组preSum[nums.length1]&#xff0c;在里面计算nums…...

Webots控制器编程

本文主要内容是如何编写Webots控制器&#xff0c;使用语言为Python。 文章目录 1. 新增控制器2. Hello World Example3. 读取传感器4. 使用执行器5. 理解step和robot.step函数6. 同时使用传感器和执行器7. 控制器参数 1. 新增控制器 对机器人Robot新增控制器的方式&#xff1…...

舷外机,高效动力的选择,可靠性能的保障_鼎跃安全

舷外机是现代船只动力系统中的核心设备&#xff0c;广泛应用于娱乐船、渔船、巡逻船、救援船等多种场景。它不仅提供船只的动力支持&#xff0c;还因其结构简便、操作灵活和维护方便&#xff0c;成为水上作业的重要组成部分。 一、舷外机的功能作用 1. 强劲动力源 舷外机是船…...

计算机新手练级攻略——如何搜索问题

目录 计算机学生新手练级攻略——如何搜索问题1.明确搜索意图2.使用精确关键词3.使用专业引擎搜索4.利用好技术社区1. Stack Overflow2. GitHub3. IEEE Xplore4. DBLP 5.使用代码搜索工具1. GitHub 代码搜索2. Stack Overflow 代码搜索3. Papers with Code4. IEEE Xplore 6.查阅…...

echarts-gl 3D柱状图配置

1. 源码 此demo可以直接在echarts的编辑器中运行 option {title: {text: 产量图,textStyle: {color: rgba(255, 255, 255, 1),fontSize: 17},left: center},tooltip: {},legend: {show: false,orient: vertical,x: left,top: 0,right: 20,textStyle: {fontSize: 12}},visualM…...

设计模式之模版方法模式(Template)

一、模版方法模式介绍 1、模版方法模式定义&#xff1a; 模板方法模式(template method pattern)原始定义是&#xff1a;在操作中定义算法的框架&#xff0c;将一些 步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法中的算法可以理…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...