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

网络的基础

 学习地点(泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 (bilibili.com))


HTTP协议介绍

HTTP,全称为超文本传输协议(HyperText Transfer Protocol),是用于万维网服务器向本地浏览器传输超文本(如HTML文档)及其他资源的传输协议。它工作在客户端-服务端(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连接上发送多个请求和响应;管道化,客户端可连续发送多个请求,但服务器响应顺序必须与请求顺序一致;增加了PUT、DELETE、OPTIONS等请求方式;引入缓存控制机制。
                使用场景:广泛应用于大多数网站和Web应用程序,是成熟且稳定的版本。


        HTTP/2

                诞生背景:Web应用日益复杂,用户对网页加载速度和性能要求更高,HTTP/1.1存在局限性。
                主要特性:二进制分帧,提高传输效率和灵活性;多路复用,可在一个连接上同时处理多个请求和响应;头部压缩,使用HPACK算法减少传输数据量;服务器推送,提高页面加载速度。
                使用场景:适用于性能要求较高的现代Web应用,特别是需要快速加载大量资源的场景。


        HTTP/3

                诞生背景:虽然HTTP/2性能有所提升,但仍基于TCP协议,存在连接建立时间长、丢包重传效率低等问题。
                主要特性:基于QUIC,是基于UDP的传输协议,具有更快的连接建立时间和更好的拥塞控制机制;0-RTT连接建立,减少延迟;连接迁移,网络环境变化时连接可保持;前向纠错,提高传输效率。
                使用场景:对延迟敏感的应用,如在线游戏、实时视频通信等,以及在网络环境不稳定的情况下提供更好性能和可靠性。


HTTP协议请求方式

        GET:用于请求指定的资源。最常见,浏览器访问时通常发送GET请求。可缓存,参数附加在URL中,易于分享和书签,但可能暴露敏感信息,有长度限制,且不会修改服务器资源。
        POST:通常用于向服务器提交数据,创建或更新资源。如提交表单、上传文件等。数据放在请求体中,可传输大量数据,相对更安全,不易暴露敏感信息,通常不会被缓存。
        PUT:用于更新服务器上的资源,通常会将整个资源进行替换。PUT请求是幂等的。
        DELETE:用于删除服务器上的指定资源。DELETE请求也是幂等的。
        HEAD:与GET类似,但只返回头部信息,不返回资源主体内容。用于检查资源存在性,获取元信息,节省带宽和时间。
        OPTIONS:用于获取服务器支持的HTTP请求方法和其他选项。客户端可通过OPTIONS请求了解服务器对特定资源的访问权限和支持的操作。
        TRACE:用于诊断和调试,客户端可发送TRACE请求来查看请求在网络中经过的路径。通常在开发和测试环境中使用。

HTTP协议之URL

URL格式:协议://域名:端口/路径/文件?参数#锚点。

例如:https://www.baidu.com/web/123.html?id=1#respond。

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:表示资源未被修改,客户端可使用缓存版本。通常在条件请求时返回。


        4xx 客户端错误状态码

                400 Bad Request:表示请求有语法错误或无法被服务器理解。
                401 Unauthorized:表示请求需要用户认证,通常因客户端未提供有效身份验证凭证。
                403 Forbidden:表示服务器理解请求但拒绝执行,通常因客户端权限不足。
                404 Not Found:表示服务器无法找到请求的资源。
                405 Method Not Allowed:表示请求方法不被允许。


        5xx 服务器错误状态码

                500 Internal Server Error:表示服务器处理请求时发生内部错误,通常是服务器端程序异常。
                502 Bad Gateway:表示作为网关或代理的服务器从上游服务器接收到无效响应。
                503 Service Unavailable:表示服务器暂时无法处理请求,通常因过载或维护。
                504 Gateway Timeout:表示作为网关或代理的服务器等待上游服务器响应时超时。

内外网划分

内网(局域网)

        定义:指组织或机构内部的网络,范围相对较小,局限于办公室、楼栋或企业园区。
        特点:
                较高安全性:与外部网络相对隔绝,外部用户难以直接访问内网资源,可通过访问控制策略、防火墙等措施加强安全防护。
                高效资源共享:内网设备可方便共享文件、打印机、数据库等资源,提高工作效率。
                稳定网络性能:用户数量和流量可控,可通过合适网络设备确保高速稳定运行。
用途:企业办公、学校教学、医疗机构内部系统等。

外网(广域网)

        定义:指连接全球各地的网络,由互联网服务提供商(ISP)提供接入服务,范围广泛,覆盖全球。
        特点:
                开放性:任何人可通过合适方式接入外网,获取信息和服务,但存在安全风险。
                动态性:网络环境动态变化,网络流量、用户行为等因素影响性能和稳定性。
        用途:信息获取、社交互动、电子商务等。

公网和私网地址

        公网地址

        定义:也称全球唯一IP地址,由ISP分配给用户,可在全球互联网上唯一识别。
        特点:
                全球唯一性:不同设备不能拥有相同公网地址。
                可路由性:可在互联网上被路由,实现不同网络中设备通信。
                有限性:IPv4地址资源有限,公网地址需求增加,资源紧张。
                服务器托管:企业和个人需将服务器托管在数据中心时,需使用公网地址以便全球访问。
                网站建设:网站服务需公网地址才能被互联网用户访问。
                远程办公:需远程访问公司内部网络资源的员工,可通过VPN等技术使用公网地址实现远程访问。

        

        私网地址

        定义:也称本地IP地址,组织或机构内部使用,不能在全球互联网上直接访问。
        特点:
                可重复使用:可在不同组织或机构内部重复利用。
                灵活性:分配由组织或机构内部自行管理,具有较高灵活性。
                安全性:不能在全球互联网上直接访问,提高网络安全性,减少外部攻击风险。
                用途:企业内部网络、家庭网络、无线网络等。

常见的私网地址范围

A类地址:10.0.0.0-10.255.255.255
B类地址:172.16.0.0-172.31.255.255
C类地址:192.168.0.0-192.168.255.255

相关文章:

网络的基础

学习地点(泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 (bilibili.com)) HTTP协议介绍 HTTP,全称为超文本传输协议(HyperText Transfer Protocol),是用于万维网服务器向本地浏览器传输超文本&#xff…...

金融学期末速成笔记

【拯救者】金融学速成(基础习题) 重点: 市场经济是发达的商品经济。在市场经济条件下,市场机制作为资源配置方式,发挥基础性作用。 除具有商品经济的一般特征外,与商品经济相比,市场经济还具有一些新的特征…...

【Elasticsearch入门到落地】1、初识Elasticsearch

一、什么是Elasticsearch Elasticsearch(简称ES)是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。它使用Java编写,基于Apache Lucene来构建索引和提供搜索功能,是一个分布式、可扩展、近实…...

电子版产品册代替纸质版产品册,开源节流!

​在当今数字化时代,企业纷纷寻求创新手段以降低成本、提高效率。纸质版产品册作为传统宣传手段,虽然具有一定的宣传效果,但成本高昂、更新不便、环保压力等问题日益凸显。本文将为您详细解析如何通过采用电子版产品册替代纸质版产品册&#…...

npm i忽略依赖冲突

在使用npm安装依赖时,如果遇到依赖冲突,通常npm会提示错误并阻止安装。但是,如果你想要忽略这些依赖冲突,可以使用以下几种方法: 1.使用--force或-f参数:这个参数会强制npm忽略某些错误,包括依…...

商品,订单业务流程梳理一

业务架构梳理 业务系统介绍 业务商品流程 业务订单流程 业务售后流程 系统架构 技术栈...

Spring中的 bean 标签中的 factory-bean , factory-method

1.首先说说 factory-method 是指定创造实例的工厂方法,用法: factory-method 和 class 配合使用,这时 factory-method 必须是class所指定的类中的一个静态方法,也就是Spring会直接调用 class 所指定的类的静态工厂方法创建一个实例…...

车间管理|基于SprinBoot+vue工厂车间管理系统设计与实现(源码+数据库+文档)

车间管理系统系统 目录 基于SprinBootvue工厂车间管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&…...

C#实战:使用腾讯云识别服务轻松提取火车票信息

目录 一、腾讯票据单据识别 Invoice OCR服务介绍 二、开发完整流程 2.1 开通文字识别服务 2.2 创建开发者密钥 2.3 创建项目编写代码集成 三、总结 公司内部涉及到车票报销的时候一个个输入火车票信息非常麻烦,尤其是出差比较多的企业,这对于财务人…...

王珊数据库系统概论第六版PDF+第五版课后答案+课件

为了保持科学性、先进性和实用性, 编者在第5版教材基础上对全书内容进行了修改、更新和充实。在科学性方面, 编者在系统篇中增加了第9章关系数据库存储管理, 讲解数据库的逻辑与物理组织方式及索引结构。增加这部分内容有助于学生更好地理解关…...

Spring学习笔记(四)

二十一、Spring事务详解 &#xff08;一&#xff09;、Spring基于XML的事务配置 1.环境搭建 1.1 构建maven工程&#xff0c;添加相关技术依赖 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context…...

CALL处 F8的“bug“

看zpchcbd师傅的一篇文章看到了这个比较有趣的点。实操跟着过一遍。 准确来说这个不能说是"bug"&#xff0c;这可以是一种"刻意为之"的手段&#xff0c;可以用于加壳、反调试等逆向技术中。 原理&#xff1a; F8步过call的时候&#xff0c;其实是在call的…...

Verilog中的有符号数与无符号数

1. 有符号与无符号最本质的区别在于高位扩展时的扩展规则不同&#xff1b; 对于同一个4‘b1001进行位扩展成8位&#xff1a; 有符号扩展结果为&#xff1a;8’b11111001 无符合扩展结果为: 8b00001001 2. 同第一点&#xff0c;若在运算中没有涉及位扩展&#xff0c;则有符…...

15分钟学 Go 第 47 天 :并发进阶——深入了解Go语言的并发模型!

第47天的学习&#xff1a;并发进阶——深入了解Go语言的并发模型&#xff01; 目录 Go并发模型简介Goroutines深度讲解Channels的进阶使用Select语句详解并发模型设计模式实战案例分析常见问题与解决方案 1. Go并发模型简介 Go语言以其内置的并发支持而闻名。通过轻量级的g…...

前端代码分析题(选择题、分析题)——this指向、原型链分析

this指向 普通函数&#xff1a;this 的指向由调用方式决定&#xff0c;可以是全局对象、调用该函数的对象&#xff0c;或者显式指定的对象。箭头函数&#xff1a;this 的指向在定义时确定&#xff0c;始终继承自外层函数作用域的 this&#xff0c;不会被调用方式影响。 var obj…...

react 组件应用

文章目录 react 组件react 中组件 hook 函数应用useMemo技术细节(useMemo 钩子函数和 useCallback 钩子函数)小结(依赖性数组应用) react 组件 函数式组件实例及应用场景 实例&#xff1a; 以下是一个简单的函数式组件&#xff0c;用于显示一个欢迎消息。 import React from re…...

mysql 快速解决死锁方式

mysql 快速解决死锁方式 直接寻找并终止导致死锁的具体 SQL 语句是处理死锁的一种有效方法&#xff0c;特别是在高并发环境中。以下步骤和示例展示了如何通过识别、分析和终止长时间运行的 SQL 语句来解决死锁问题。 一、识别那个导致死锁的 SQL 语句 1. 使用 SHOW ENGINE I…...

RabbitMQ 篇-深入了解 RabbitMQ 安装以及 SpringAMQP 的基础使用(声明队列和交换机、发送接收消息、配置 JSON 消息转化器)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 RabbitMQ 初识 1.1 RabbitMQ 安装 2.0 数据隔离 2.1 用户管理 2.2 virtual host 虚拟主机 3.0 SpringAMQP 3.1 RabbitMQ 配置 3.2 发送消息 3.3 接收消息 3.4 Wor…...

在 WPF 中,绑定机制是如何工作的?WPF数据绑定机制解析

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;数据绑定机制是其核心功能之一&#xff0c;广泛用于连接应用程序的UI&#xff08;用户界面&#xff09;和应用程序的业务逻辑层。数据绑定允许你将UI元素与数据源&#xff08;如对象、集合或其他数…...

pwn学习笔记(12)--Chunk Extend and Overlapping

pwn学习笔记&#xff08;12&#xff09;–Chunk Extend and Overlapping ​ chunk extend 是堆漏洞的一种常见利用手法&#xff0c;通过 extend 可以实现 chunk overlapping&#xff08;块重叠&#xff09; 的效果。这种利用方法需要以下的时机和条件&#xff1a; 程序中存在…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...