网络的基础
学习地点(泷羽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),是用于万维网服务器向本地浏览器传输超文本ÿ…...
金融学期末速成笔记
【拯救者】金融学速成(基础习题) 重点: 市场经济是发达的商品经济。在市场经济条件下,市场机制作为资源配置方式,发挥基础性作用。 除具有商品经济的一般特征外,与商品经济相比,市场经济还具有一些新的特征…...
【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事务详解 (一)、Spring基于XML的事务配置 1.环境搭建 1.1 构建maven工程,添加相关技术依赖 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context…...
CALL处 F8的“bug“
看zpchcbd师傅的一篇文章看到了这个比较有趣的点。实操跟着过一遍。 准确来说这个不能说是"bug",这可以是一种"刻意为之"的手段,可以用于加壳、反调试等逆向技术中。 原理: F8步过call的时候,其实是在call的…...
Verilog中的有符号数与无符号数
1. 有符号与无符号最本质的区别在于高位扩展时的扩展规则不同; 对于同一个4‘b1001进行位扩展成8位: 有符号扩展结果为:8’b11111001 无符合扩展结果为: 8b00001001 2. 同第一点,若在运算中没有涉及位扩展,则有符…...
15分钟学 Go 第 47 天 :并发进阶——深入了解Go语言的并发模型!
第47天的学习:并发进阶——深入了解Go语言的并发模型! 目录 Go并发模型简介Goroutines深度讲解Channels的进阶使用Select语句详解并发模型设计模式实战案例分析常见问题与解决方案 1. Go并发模型简介 Go语言以其内置的并发支持而闻名。通过轻量级的g…...
前端代码分析题(选择题、分析题)——this指向、原型链分析
this指向 普通函数:this 的指向由调用方式决定,可以是全局对象、调用该函数的对象,或者显式指定的对象。箭头函数:this 的指向在定义时确定,始终继承自外层函数作用域的 this,不会被调用方式影响。 var obj…...
react 组件应用
文章目录 react 组件react 中组件 hook 函数应用useMemo技术细节(useMemo 钩子函数和 useCallback 钩子函数)小结(依赖性数组应用) react 组件 函数式组件实例及应用场景 实例: 以下是一个简单的函数式组件,用于显示一个欢迎消息。 import React from re…...
mysql 快速解决死锁方式
mysql 快速解决死锁方式 直接寻找并终止导致死锁的具体 SQL 语句是处理死锁的一种有效方法,特别是在高并发环境中。以下步骤和示例展示了如何通过识别、分析和终止长时间运行的 SQL 语句来解决死锁问题。 一、识别那个导致死锁的 SQL 语句 1. 使用 SHOW ENGINE I…...
RabbitMQ 篇-深入了解 RabbitMQ 安装以及 SpringAMQP 的基础使用(声明队列和交换机、发送接收消息、配置 JSON 消息转化器)
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 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(Windows Presentation Foundation)中,数据绑定机制是其核心功能之一,广泛用于连接应用程序的UI(用户界面)和应用程序的业务逻辑层。数据绑定允许你将UI元素与数据源(如对象、集合或其他数…...
pwn学习笔记(12)--Chunk Extend and Overlapping
pwn学习笔记(12)–Chunk Extend and Overlapping chunk extend 是堆漏洞的一种常见利用手法,通过 extend 可以实现 chunk overlapping(块重叠) 的效果。这种利用方法需要以下的时机和条件: 程序中存在…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
