泷羽sec-------http协议与内外网划分的学习
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-f23dff6052.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mobile/css/edit_views_md-250d69367f.min.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-e504d6a974.css">
<blockquote>
声明! 学习视频来自B站up主 泷羽sec
有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
一、HTTP协议
HTTP(HyperText Transfer Protocol)即超文本传输协议,是用于分布式、协作式和超媒体信息系统的应用层协议。它是万维网(World Wide Web)数据通信的基础,通过客户端和服务器之间的请求 - 响应模式来传输数据。
1、版本演变
-
HTTP/1.0
这是早期的 HTTP 协议版本,它的特点是简单直接。在这个版本中,每个 TCP 连接只能发送一个请求,发送完请求并得到响应后,连接就会关闭。这就导致如果一个网页包含多个资源(如多个图片、样式表等),就需要建立多个 TCP 连接,效率较低。
-
HTTP/1.1
为了解决 HTTP/1.0 的一些问题,HTTP/1.1 进行了改进。它支持持久连接,即一个 TCP 连接可以发送多个请求和接收多个响应,这样就减少了建立连接的开销。同时,它还新增了一些请求方法(如 PUT 和 DELETE)和状态码,进一步完善了协议的功能。
-
HTTP/2
HTTP/2 在性能上有了很大的提升。它采用二进制格式进行数据传输,而不是 HTTP/1.x 的文本格式,这使得协议更加高效。它还引入了多路复用技术,一个 TCP 连接上可以同时发送多个请求和响应,而且这些请求和响应的顺序不受限制,大大提高了网络资源的利用率。另外,HTTP/2 支持头部压缩,减少了请求和响应头的大小,进一步提高了传输效率。
-
HTTP/3
HTTP/3 是基于 QUIC(Quick UDP Internet Connections)协议构建的。QUIC 是一种基于 UDP 的传输层协议,相比 TCP,它具有更低的延迟和更好的拥塞控制。HTTP/3 继承了 HTTP/2 的许多优点,如多路复用、头部压缩等,同时通过使用 QUIC 协议来改善网络性能,特别是在移动网络和高丢包率的网络环境下表现出色。
2、请求方法
-
GET
用于请求获取指定的资源。它是最常用的请求方法之一,当你在浏览器地址栏中输入网址访问网页时,默认就是使用 GET 方法。GET 请求的参数通常会附加在 URL 后面
特点:
GET请求可以被缓存,除非指定了特定的缓存控制头部
GET请求的参数通常附加在URL中,这使得它们可以被轻松的分享,但也可能会暴露敏感信息,并且有长度限制
GET请求时安全的,它不会对服务器上的资源进行修改
-
POST
用于向指定资源提交要被处理的数据。通常用于表单提交,如用户登录时提交用户名和密码,或者在论坛中发布新的帖子。与 GET 不同,POST 请求的数据放在请求体中,而不是 URL 中,这样可以避免数据在 URL 中暴露,并且可以提交大量的数据。POST请求一般不会被缓存
-
PUT
用于将请求的内容替换目标资源的当前内容。例如,在一个文件存储服务中,如果要更新一个文件的全部内容,可以使用 PUT 方法,用新的文件内容替换原来的文件内容。
PUT请求是幂等的,即多次发送相同的PUT请求应该产生相同的结果
-
DELETE
用于请求服务器删除指定的资源。比如在一个云存储服务中,用户想要删除一个文件,就可以发送一个 DELETE 请求来删除相应的文件资源。DELETE请求是幂等的,多次删除同一个资源应该产生相同的结果,资源被删除后再次删除不会产生错误
-
HEAD
与GET请求类似,但只返回头部信息,不返回资源的主体部分。
可以用于检查资源的存在性、获取资源的元信息(如最后修改时间、内容长度等,而无需下载整个资源,从而节省带宽和时间)
-
OPTIONS
用于显示服务器支持的HTTP请求方法和其他选项
客户端可通过该方法了解服务器对特定资源的访问权限和支持的操作
-
TRACE
用于测试或诊断,客户端可发送该请求来查看请求在网络中经过的路径
通常在开发和测试环境中使用,以了解请求的处理过程
3、URL的构造分析
https://www.baidu.com/web/22.html?replytocom=22#respond
协议 : // 域名:端口 / 虚拟目录 / 文件名 ?参数#锚点
4、 请求和响应的结构
请求(Request)
-
一个 HTTP 请求通常由请求行、请求头和请求体(可选)组成。
-
请求行:包含请求方法、请求的 URL(统一资源定位符)和 HTTP 协议版本。
例如,在
GET /index.html HTTP/1.1”
这个请求行中,GET”
是请求方法,表示获取资源;/index.html
是请求的资源路径;HTTP/1.1
是协议版本。 -
请求头:包含了关于客户端的各种信息以及请求的附加信息。
如
User - Agent”
头字段,它用于标识客户端的软件信息(如浏览器类型和版本),像User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/XX.XX.XXXX.XX Safari/537.36
,这可以让服务器知道是哪种浏览器在发起请求,以便服务器根据浏览器的特性来优化响应内容。还有
Accept - Language”
头字段,用于告知服务器客户端所接受的语言,如Accept - Language: en - US,en;q = 0.9
,表示客户端优先接受美式英语,也接受其他英语方言。 -
请求体:主要用于 POST 等请求方法,当客户端需要向服务器发送大量数据(如表单数据)时,数据就放在请求体中。
响应(Response)
-
一个 HTTP 响应通常由响应行、响应头和响应体组成。
-
响应行:包含 HTTP 协议版本、响应状态码和状态消息。
例如,
HTTP/1.1 200 OK
,其中HTTP/1.1”
是协议版本,200”
是状态码,表示请求成功,OK
是状态消息,对状态码进行简单的文字描述。 -
响应头:包含服务器的信息以及关于响应的附加信息。如
Content - Type”
头字段,用于告诉客户端响应体的数据类型,例如Content - Type: text/html; charset=UTF - 8
,说明响应体是 HTML 文本,并且字符编码是 UTF - 8。 -
响应体:包含服务器返回给客户端的实际内容,如网页的 HTML 代码、图片数据等。
5、状态码
状态码 | 表示信息 |
---|---|
1XX 信息性状态码 | 这类状态码主要是提供信息,如 100 Continue。当客户端发送一个带有较大请求体的请求(如 POST 请求)时,它可以先发送请求头,服务器返回 100 Continue 状态码表示可以继续发送请求体部分。 |
2XX 成功状态码 | 200 OK 是最常见的成功状态码,表示服务器成功处理了客户端的请求并返回了请求的内容。 201 Created 表示请求成功并且服务器创建了新的资源,例如,当客户端通过 POST 请求在服务器上成功创建了一个新的用户账号后,服务器可能会返回 201 Created 状态码。 204 No Content表示请求已经成功处理,但没有返回任何内容。通常用于PUT或DELETE请求成功后,表示资源已被更新或删除 |
3XX 重定向状态码 | 301 Moved Permanently 表示所请求的资源已被永久移动到新的位置,客户端应该使用新的 URL 进行后续请求。例如,一个网站的域名发生了永久性的变更,服务器会返回 301 状态码,引导浏览器访问新的域名。 302 Found 表示所请求的资源临时移动到了其他位置,客户端在后续请求时应该使用新的临时位置的 URL。若继续使用原有URL进行请求,可根据响应头中的 Location 头部字段进行重定向304 Not Modified 表示资源未被修改,客户端可使用缓存的版本。通常在客户端发送条件请求(如带有If-Modified-Since或If-None-Match头部)时返回 |
4XX 客户端错误状态码 | 400 Bad Request 表示客户端发送的请求有语法错误或无法被服务器理解,例如请求格式不符合 HTTP 协议规范。 401 Unauthorized 表示客户端没有权限访问请求的资源,通常是因为没有提供有效的认证信息,如在需要登录的网站中,未登录的用户访问受保护的资源时会收到 401 状态码。 403 Forbidden 表示服务器理解请求,但拒绝执行,通常是因为客户端没有足够的权限访问 404 Not Found 是非常常见的状态码,表示客户端请求的资源在服务器上不存在。 405 Method Not Allowed 表示请求的方法不被允许,例如使用不支持的HTTP方法请求某个资源 |
5XX 服务器错误状态码 | 500 Internal Server Error 表示服务器在处理请求时发生了内部错误,可能是代码出错、数据库连接问题等。 502 Bad Gateway 表示作为网关或代理的服务器在尝试请求时,从上游服务器接收到无效的响应 503 Service Unavailable 表示服务器目前无法处理请求,通常是因为服务器过载或者正在维护。 504 Gateway Timeout 表示作为网关或代理的服务器在等待上游服务器响应时超时 |
200 表 成功
3xx 表 重定向
401 表 未授权
404 表 没有该资源
403 表 请求成功,但是服务器拒绝响应(也就是,有这个文件夹,类似/admin/,这个文件夹存在)
500 表 服务器内部的错误 (并不代表没有该资源)
二、内外网划分
1、 内网(局域网)
定义:
内网通常是指一个组织或机构内部的网络,它的范围相对较小,一般局限于一个办公室、一栋楼或一个企业园区内
特点:
- 较高的安全性:由于内网于外网相对隔离,外部用户难以直接访问内网资源,因此内网通常具有较高的安全性。可以通过设置访问控制策略、防火墙等措施进一步加强安全防护
- 高效的资源共享:内网中的设备可以方便的共享文件、打印机、数据库等资源,提高工作效率。例如,在企业内部,员工可以快速访问共享的文档和数据,进行协作办公
- 稳定的网络性能:内网的网络性能相对稳定,因为它的用户数量和流量通常是可控的。可以通过优化网络架构、配置合适的网络设备来确保内网的高速稳定运行
用途:
- 企业办公:企业内部的员工可以通过内网进行文件共享、邮件通信、办公自动化等工作。例如,使用企业颞部的办公软件进行项目管理、流程审批等
- 学校教学:学校可以建立内网,供师生进行教学资源共享、在线学习、考试管理等。例如,学生可以在内网上访问教学课件、提交作业,教师可以进行在线批改和成绩管理
- 医疗机构:医院内部的医疗系统通常运行在内网上,以确保患者信息的安全和医疗业务的稳定进行。例如,医生可以在内网上查看患者病历、开具处方,护士可以进行护理记录和医嘱执行
2、外网(广域网)
定义:
外网是指连接全球各地的网络,通常由互联网服务提供商(ISP)提供接入服务。外网的范围非常广泛,可以覆盖全球各个角落
特点:
- 开放性:外网是开放的,任何人都可以通过合适的方式接入外网,获取各种信息和服务。但这也带来一定的安全风险,如网络攻击、信息泄露等
- 丰富的资源:外网上拥有海量的信息和服务资源,用户可以通过搜索引擎、社交媒体、电子商务等平台获取各种所需的信息和服务。例如,在网上购物、查询新闻、观看视频等。
- 动态性:外网的网络环境是动态变化的,网络流量、用户行为等因素都会影响外网的性能和稳定性。因此,外网的服务质量可能会有所波动。
用途:
- 信息获取:用户可以通过外网获取各种新闻、知识、娱乐等信息。例如,通过搜索引擎查询资料,阅读在线新闻,观看电影和电视剧等。
- 社交互动:外网提供了各种社交平台,用户可以与朋友、家人、同事等进行交流和互动。例如,使用社交媒体发布动态、分享照片,进行在线聊天和视频通话等。
- 电子商务:用户可以通过外网进行在线购物、支付等电子商务活动。例如,在网上购买商品、预订旅游服务、缴纳水电费等。
总之,内外网的划分是为了满足不同的网络需求和安全要求。内网提供了安全、高效的内部资源共享和办公环境,外网则是为用户提供了丰富的信息和服务资源。在实际应用中,需要根据具体情况合理划分内外网,并采取相应的安全措施来保护网络
三、公网和私网地址
公网和私网地址在内外网划分中起着重要作用。
1、公网地址
定义:
公网地址也称为全球唯一IP地址,是由互联网服务提供商(ISP)分配给用户的,可以在全球互联网上被唯一识别的地址。
特点:
- 全球唯一性:公网地址在全球范围内是唯一的,不同的设备不能拥有相同的公网地址。
- 可路由性:公网地址可以在互联网上被路由,使得不同网络中的设备可以相互通信。
- 有限性:由于IPv4地址资源有限,公网地址的数量也是有限的。随着互联网的发展,公网地址的需求不断增加,导致公网地址资源日益紧张。
用途:
- 服务器托管:如果企业或个人需要将自己的服务器托管在数据中心,就需要使用公网地址,以便让全球用户都能够访问到服务器上的服务。
- 网站建设:网站服务器需要公网地址才能被互联网上的用户访问。
- 远程办公:对于需要远程访问公司内部网络资源的员工,公司可以为其分配公网地址以便通过VPN等技术实现远程访问
2、私网地址
定义:
私网地址也称为本地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
- A 类私网地址范围:10.0.0.0 - 10.255.255.255。A 类地址的默认子网掩码是 255.0.0.0。这意味着在这个范围内可以划分出大量的子网,适用于大型企业或组织内部构建大规模的局域网。
- B 类私网地址范围:172.16.0.0 - 172.31.255.255。B 类地址的默认子网掩码是 255.255.0.0。这种地址范围比较适合中型企业或组织。
- C 类私网地址范围:192.168.0.0 - 192.168.255.255。C 类地址的默认子网掩码是 255.255.255.0。C 类私网地址是最常见的,常用于小型企业、家庭网络等。例如,在一个家庭的无线网络环境中,无线路由器通常会为连接的设备分配 192.168 开头的 IP 地址,如 192.168.1.100 等,这些设备可以在家庭内部的局域网中相互通信,如手机、电脑、智能家电等之间的通信。
总之,公网地址和私网地址在网络中都有各自的用途。公网地址用于在全球互联网上进行通信,而私网地址则用于在组织或机构内部构建本地网络。在实际应用中,需要根据具体情况合理分配和使用公网地址和私网地址,以满足不同的网络需求
简单来说,公网地址是由ISP提供,然后构造网络环境,比如网线,光纤的安装等。
如自己家里买的宽带,是先由ISP派出网工师傅到到现场进行安装,首先就是网线的拉取,若房间内留有网线,则可以直接使用,把网线插入特定的设备,如光猫吧(现在基本上都是光纤了),然后师傅会配置光猫,按照ISP公司给的IP地址,或者内部人员的操作,即可把这个光猫连接到互联网中,也就是接入了特定ISP服务商的互联网中,那么这个时候,当我们再接一个路由器到光猫时,就会根据路由器的配置,生成局域网,内网。
而外面的光纤线连着其他的路由器等设备,进行着通信,我们使用网络时,会通过连接光猫的这个光纤进行通信。
本文来自博客园,作者:whitehe,转载请注明原文链接:https://www.cnblogs.com/whitehe/p/18578419