HTTP协议和内外网划分---清风

声明!

通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章,如涉及侵权马上删除文章,笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负.

文章为个人学习笔记。

HTTP协议简介

HTTP协议是Hypertext Transfer Protocol (也称为超文本传输协议)的缩写,是用于从万维网(www:world wide web)服务器传输超文本到本地浏览器的传送协议HTTP协议工作于客户端-服务端(browser/sever)B/S架构上。 浏览器作为HTTP客户端通过url向HTTP服务端即web服务器发送所有请求。web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP历来版本信息

HTTP(超文本传输协议)经历了多个版本的发展,每个版本都在性能、功能和安全性等方面有所改进。以下是对各个HTTP协议版本的全面介绍:

一、НТТР/0. 9

诞生背景:

互联网发展初期,对网页的需求较为简单,主要是纯文本内容的传输。

主要特性:

        仅支持GET请求,用于获取HTML文档。

        没有请求头和响应头,通信极为简洁。

        只能传输纯文本内容,不支持多媒体资源。

使用场景:

        早期简单的网页浏览,通常是一些静态的文本页面。

二、HTTP/1.0

诞生背景:

        随着互联网的发展,人对网页的内容和交互性有了更高的要求。

主要特性:

        引入了请求头和响应头,包含了一些基本的元信息,如文档类型、 日期等。

        支持多种请求方法,如GET、POST 和HEAD。

        但每次请求都需要建立新的TCP连接,传输完成后立即断开,效率较低。

使用场景:

        适用于一些简单的网页浏览和交互场景,但对于包含大量资源的网页,加载速度较慢。

三、 НТТР/1. 1

诞生背景:

        为了解决HTTP/1.0连接频繁建立和断开的问题,提高网页加载速度和性能。

主要特性:

        持久连接(Keep-Alive),允许在一个TCP连接上发送多个请求和响应,减少连接建立。管道化(Pipelining),客户端可以在一个连接上连续发送多个请求,但服务器的响应顺序必须与请求顺序一致。 增加了更多的请求方法,如PUT、DELETE、OPTI0NS等。 引入缓存控制机制,通过头部字段控制缓存的使用。

 使用场景:

        目前广泛应用于大多数网站和Web应用程序,是较为成熟和稳定的版本。

四、HTTP/2

诞生背景:

        随着Web应用的日益复杂,用户对网页加载速度和性能的要求越来越高,HTTP/1.1在一些方面存在局限性。

主要特性:

        二进制分帧,将HTTP消息分解为更小的帧进行传输,提高传输效率和灵活性。 多路复用,可在一个连接上同时处理多个请求和响应,无需按顺序发送,提高并发处理能力。

        头部压缩,使用HPACK算法对头部进行压缩,减少传输的数据量。 服务器推送,服务器可以主动向客户端推送资源,提高页面加载速度。

使用场景:

        对于性要求较高的现代Web应用,特别是需要快速加载大量资源的场景。

五、HTTP/3

诞生背景:

        虽然HTTP/2在性能上有了很大提升,但它仍然基于TCP协议,而TCP在一些情况下可能会出现连接建立时间长、丢包重传效率低等问题。

主要特性:

        基于QU1C协议,一种基于UDP的传输协议,具有更快的连接建立时间和更好的拥塞控制机制。

        0-RTT连接建立,在某些情况下可以在第一次连接时就开始发送数据,减少延迟连接迁移,即使网络环境发生变化,连接也可以保持。

        前向纠错,在数据传输过程中可以检测和纠正一些错误,减少重传次数,提高传输效率。

使用场景:

        对延迟敏感的应用,如在线游戏、实时视频通信等,以及在网络环境不稳定的情况下,能够提供更好的性能和可靠性。

HTTP协议请求方法

一、GET

用途:

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

特点:

        GET请求可以被缓存,除非指定了特定的缓存控制头部。 GET请求的参数通常附加在URL 中,这使得它们可以被轻松地分享和书签,但也可能会暴露敏感信息,并且有长度限制。

GET请求是安全的,即它不会对服务器上的资源进行修改。

二、POST

用途:

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

特点:

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

        P0ST请求一般不会被缓存。

三、PUT

用途:

        用于更新服务器上的资源,PUT请求通常会将整个资源进行替换。

特点:

        PUT请求是幂等的,即多次发送相同的PUT请求应该产生相同的结果。

四、DELETE

用途:

        用于删除服务器上的指定资源。

特点:

        DELETE请求也是幂等的,多次删除同一个资源应该产生相同的结果,即资源被删除后再次删除不会产生错误。

五、HEAD

用途:

        与GET请求类似,但只返回头部信息,不返回资源的主体内容。

特点:

        可以用于检查资源的存在性、获取资源的元信息(如最后修改时间内容长度等) 而无需下载整个资源,从而节省带宽和时间。

六、OPT1ONS

用途:

        用于获取服务器支持的HTTP请求方法和其他选项。

特点:

        客户端可以通过OPTIONS请求了解服务器对特定资源的访问权限和支持的操作。

七、TRACE

 用途:

        用于诊断和调试,客户端可以发送TRACE请求来查看请求在网络中经过的路径。

特点:

        通常在开发和测试环境中使用,以了解请求的处理过程。

HTTP协议之url

https://www. baidu. com/web/579. htmI?replytocom=22#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: 表示资源未被修改,客户端可以使用缓存的版本。通常在客户端发送条件请求( 如带有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: 表示服务器在处理请求时发生了内部错误,通常是服务器端的程序出现了异常。

什么是QUIC 协议?

QUIC(Quick UDP Internet Connection)是谷歌推出的一套基于 UDP 的传输协议,它实现了 TCP + HTTPS + HTTP/2 的功能,目的是保证可靠性的同时降低网络延迟。因为 UDP 是一个简单传输协议,基于 UDP 可以摆脱 TCP 传输确认、重传慢启动等因素,建立安全连接只需要一的个往返时间,它还实现了 HTTP/2 多路复用、头部压缩等功能。

内外网划分

内网(局域网)

定义

        内网通常是指一个组织或机构内部的网络,它的范围相对较小,一般局限于一个办公室、一栋楼或者一个企业园区内。

特点:

较高的安全性:由于内网与外部网络相对隔离,外部用户难以直接访问内网资源因此内网通常具有较高的安全性。可以通过设置访问控制策略、防火墙等措施来进一步加强安全防护。

高效的资源共享:内网中的设备可以方便地共享文件、打印机、数据库等资源,提高工作效率。例如,在企业内部,员工可以快速访问共享的文档和数据,进行协作办公。

稳定的网络性能:内网的网络性能相对稳定,因为它的用户数量和流量通常是可控的。可以通过优化网络架构、配置合适的网络设备来确保内网的高速稳定运行。

用途:

企业办公:企业内部的员工可以通过内网进行文件共享、邮件通信、办公自动化等工作。例如,使用企业内部的办公软件进行项目管理、流程审批等。

学校教学::校可以建立内网,供师生进行教学资源共享、在线学习、考试管理例如,学生可以在内网上访问教学课件、提交作业,教师可以进行在线批改和成绩管理

医疗机构:医院内部的医疗系统通常运行在内网上以确保患者信息的安全和医疗业务的稳定进行。例如,医生可以在内网上查看患者病历、开具处方,护士可以进行护理记录和医嘱执行

外网(广域网)

定义

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

特点:

开放性:外网是开放的,任何人都可以通过合适的方式接入外网,获取各种信息和服务。但这也带来了一定的安全风险信息泄露等。如网络攻击、信息泄露等

丰富的资源:公网上拥有海量的信息和服务资源,用户可以通过搜索引擎、社交媒体、电子商务等平台获取各种所需的信息和服务。例如,网上购物,查询新闻,观看视频等。

动态性:外网的网络环境是动态变化的,网络流量、用户行为等因素都会影响外网的性能和稳定性。因此,外网的服务质量可能会有所波动。

用途:

信息获取:用户可以通过外网获取各种新闻、知识、娱乐等信息。例如,通过搜索引擎查询资料,阅读在线新闻,观看电影和电视剧等。

社交互动:外网提供了各种社交平台用户可以与朋友、家人、同事等进行交流例如,使用社交媒体发布动态、分享照片和互动,进行在线聊天和视频通话等

电子商务:用户可以通过外网进行在线购物、支付等电子商务活动。例如,在网上购买商品、预订旅游服务、缴纳水电费等。

公网地址

定义:

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

特点:

全球唯一性:公网地址在全球范围内是唯一的,不同的设备不能拥有相同的公网

可路由性:公网地址可以在互联网上被路由,使得不同网络中的设备可以相互通信

有限性:由于IPv4 地址资源有限,公网地址的数量也是有限的。随着互联网的发展,公网地址的需求不断增加,导致公网地址资源日益紧张。

用途:

服务器托管:如果企业或个人需要将自己的服务器托管在数据中心,就需要使用公网地址,以便让全球用户都能够访问到服务器上的服务。

网站建设:网站服务器需要公网地址才能被互联网上的用户访问。

远程办公:对于需要远程访问公司内部网络资源的员工,公司可以为其分配公网地址,以便通过 VPN 等技术实现远程访问。

私网地址(内网地址)

定义:

        私网地址也称为本地IP 地址,是在一个组织或机构内部使用的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://www.xdnf.cn/news/15724.html

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

相关文章

UAC2.0 speaker——speaker 数据传输

文章目录 麦克风数据传输准备音频数据抓包原始数据频谱分析(FFT)应用麦克风数据传输 上一节中实现了 USB 麦克风设备 本节主要介绍 MCU 麦克风的数据如何传输给上位机。 准备音频数据 MCU 端发送 48KHZ, 16bit 单声道的正弦波数据,正弦波数据的生成参考 音频——C语言生…

【多语言】每种语言打印helloworld,编译为exe会占多大空间

文章目录 背景c语言 53KBc 53KBgo 1.8Mdart 4.6Mpython未测试nodejs未测试rust未测试java未测试cmd || bash || powershell 未测试other 背景 各个版本的helloworld,纯属闲的, 环境如下: - win10 - mingw: gcc8.1.0 - go1.21 - dart3.5.4c语言 53KB gcc main.c -…

Android12的ANR解析

0. 参考: ANR分析 深入理解 Android ANR 触发原理以及信息收集过程 1.ANR的触发分类: ANR分为4类: InputDispatchTimeout:输入事件分发超时5s,包括按键和触摸事件。BroadcastTimeout:比如前台广播在10s内未执行完成&#xff0…

2022-2023全国高校计算机能力挑战赛区域赛python组编程题

mi目录 2022 1. 2. 1. 使用 format() 方法 2. 使用 f-string(Python 3.6 及以上) 2023 1. 2. 3. 4 闽农大宝玲楼 2022 1. 1.某动物研究员给动物园的动物们定了一个园区幸福值,其中园区幸福值的计算为一个园区内“所有动物的活动时…

函数的栈帧

前言: 1.请使用vs2013调试,我使用vs2019被恶心到了,封装严重,不利于观察。 2.函数栈帧:函数就是程序,程序就需要空间来运行,所以我们要为他分配空间,分配的空间用ebp esp维护&…

机器学习基础04

目录 1.朴素贝叶斯-分类 1.1贝叶斯分类理论 1.2条件概率 1.3全概率公式 1.4贝叶斯推断 1.5朴素贝叶斯推断 1.6拉普拉斯平滑系数 1.7API 2.决策树-分类 2.1决策树 2.2基于信息增益的决策树建立 2.2.1信息熵 2.2.2信息增益 2.2.3信息增益决策树建立步骤 2.3基于基…

如何解决IDE添加错误GitHub token后无法连接GitHub的问题

背景 当初学者首次使用IDE(IDEA、Xcode等)对GitHub仓库进行操作(push、fetch)时,会提示输入GitHub账户和token,如果这时候你一不小心输入了错误的token,之后你就叫天天不应叫地地不灵了&#xf…

PPT技巧:如何合并PPT文件?

在工作与学习中,PPT(PowerPoint)演示文稿已成为信息传递、项目汇报、教育培训等领域不可或缺的工具。随着任务的累积,我们往往会积累大量单独的PPT文件,每个文件可能包含特定章节、项目阶段或是不同主题的内容。为了更…

安全见闻1-5

涵盖了编程语言、软件程序类型、操作系统、网络通讯、硬件设备、web前后端、脚本语言、病毒种类、服务器程序、人工智能等基本知识,有助于全面了解计算机科学和网络技术的各个方面。 安全见闻1 1.编程语言简要概述 C语言:面向过程,适用于系统…

k-近邻算法(K-Nearest Neighbors, KNN)详解:机器学习中的经典算法

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

LeetCode297.二叉树的序列化和反序列化

题目要求 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序…

蓝牙5.0模块助力闹钟升级,开启智能生活第一步

随着智能家居产业的快速发展,智能闹钟作为其中一个重要的品类,逐渐从单一的时间提醒功能演变为集音频播放、语音交互、智能控制等多种功能于一体的智能设备。而在这些功能的实现中,蓝牙音频模组扮演着核心角色。 1、蓝牙音频模组的功能概述 …

自己动手写Qt Creator插件

文章目录 前言一、环境准备1.先看自己的Qt Creator IDE的版本2.下载源码 二、使用步骤1.参考原本的插件2.编写自定义插件1.cmakelist增加一个模块2.同理,qbs文件也增加一个3.插件源码 三、效果总结 前言 就目前而言,Qt Creator这个IDE,插件比…

力扣经典面试题

1.本题的目标是判断字符串ransomNote是否由字符串magazine中的字符构成,且由magazine中的每个字符只能在ransomNote中使用一次 2.采用的方法是通过一个字典cahr_countl来统计magazine字符串中每个字符出现的次数 3.然后遍历ransomNote字符串,对于其中的…

Java开发人员从了学习ArkTs笔记(三)-数据结构与线程通信全解析

大家好,我是一名热爱Java开发的开发人员。目前,我正在学习ARKTS(Advanced Java Knowledge and Technology Stack),并将不断输出我的学习笔记。我将在这里分享我学习ARKTS的过程和心得,希望能够为其他开发人…

Java基础——预定义类/自定义类封装什么是Final类型

目录 预定义类——日历输出: 自定义类——在Java文件中: 什么是封装? 什么是final类型? 修饰变量: 修饰方法: 修饰类: 预定义类——日历输出: 例如:Math类、Date类…

spi 回环

///tx 极性0 (sclk信号线空闲时为低电平) /// 相位0 (在sclk信号线第一个跳变沿进行采样) timescale 1ns / 1ps//两个从机 8d01 8d02 module top(input clk ,input rst_n,input [7:0] addr ,input …

20241114软考架构-------软考案例16答案

每日打卡题案例16答案 16.【2017年真题】 难度:简单 阅读以下关于软件架构评估的叙述,在答题纸上回答问题1和问题2.(共25分) 【说明】 某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设…

低成本出租屋5G CPE解决方案:ZX7981PG/ZX7981PM WIFI6千兆高速网络

刚搬进新租的房子,没有网络,开个热点?续航不太行。随身WIFI?大多是百兆级网络。找人拉宽带?太麻烦,退租的时候也不能带着走。5G CPE倒是个不错的选择,插入SIM卡就能直接连接5G网络,千…

Python学习小记3-传递任意数量的实参

1.形参名*toppings 中的星号让Python创建一个名为toppings 的空元组,不管调用语句提供了多少实参,这个形参会将它们统统收入囊中,即:无论几个小料 def make_pizza(size, *toppings):print(f"\n要制作一个{size}-inch的披萨&…