声明
学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
目录
HTTP 协议简介
HTTP协议是Hypertext Transfer Protocol(也称为超文本传输协议)的缩写,是用于从 万维网(www:world wide web)服务器传输超文本到本地浏览器的传送协议。
http协议工作于客户端-服务端(browser/sever)B/S架构上。
浏览器作为http客户端通过ur!向http服务端即web服务器发送所有请求。web服务器根据 接收到的请求后,向客户端发送响应信息。
HTTP(超文本传输协议)经历了多个版本的发展,每个版本都在性能、功能和安全性等方 面有所改进。"以下是对各个 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 等。 引入缓存控制机制,通过头部字段控制缓存的使用。 使用场景: 目前广泛应用于大多数网站和 Web 应用程序,是较为成熟和稳定的版本。
四、HTTP/2
诞生背景: 随着 web 应用的日益复杂,用户对网页加载速度和性能的要求越来越高, HTTP/1.1 在一些方面存在局限性。 主要特性: 二进制分帧,将 HTTP 消息分解为更小的帧进行传输,提高传输效率和灵活性。 多路复用,可在一个连接上同时处理多个请求和响应,无需按顺序发送,提高并 发处理能力。 头部压缩,使用 HPACK 算法对头部进行压缩,减少传输的数据量。 服务器推送,服务器可以主动向客户端推送资源,提高页面加载速度。 使用场景: 对于性能要求较高的现代 web 应用,特别是需要快速加载大量资源的场景。
五、HTTP/3
诞生背景: 虽然 HTTP/2 在性能上有了很大提升,但它仍然基于 TCP 协议,而 TCP 在一些 情况下可能会出现连接建立时间长、丢包重传效率低等问题。 主要特性: 基于 QUIC 协议,一种基于 UDP 的传输协议,具有更快的连接建立时间和更好的 拥塞控制机制。 0-RTT 连接建立,在某些情况下可以在第一次连接时就开始发送数据,减少延迟。 连接迁移,即使网络环境发生变化,连接也可以保持。 前向纠错,在数据传输过程中可以检测和纠正一些错误,减少重传次数,提高传 输效率。 使用场景: 对延迟敏感的应用,如在线游戏、实时视频通信等,以及在网络环境不稳定的情 况下,能够提供更好的性能和可靠性。
HTTP 协议的请求方法
HTTP 协议有多种请求方法,以下是主要的几种:
一、GET
用途: 用于请求指定的资源。这是最常见的请求方法,当你在浏览器中输入网址并访问时通常会发送 GET 请求。 特点: GET 请求可以被缓存,除非指定了特定的缓存控制头部。 GET 请求的参数通常附加在 URL 中,这使得它们可以被轻松地分享和书签,但也可能会暴露敏感信息,,并且有长度限制。 GET 请求是安全的,即它不会对服务器上的资源进行修改。
二、POST
用途: 常用于向服务器提交数据,以创建或更新资源。例如,在提交表单、上传文件等场景中经常使用。 特点: POST 请求的数据通常放在请求体中,而不是 URL 中,因此可以传输更大量的数据,并且相对更安全,不容易暴露敏感信息。 POST 请求一般不会被缓存。
三、PUT
用途: 用于更新服务器上的资源,PUT 请求通常会将整个资源进行替换。 特点: PUT 请求是幂等的,即多次发送相同的 PUT 请求应该产生相同的结果
四、DELETE
用途: 用于删除服务器上的指定资源。 特点: DELETE 请求也是幂等的,多次删除同一个资源应该产生相同的结果,即资源被删除后再次删除不会产生错误。
五、HEAD
用途: 与 GET 请求类似,但只返回头部信息,不返回资源的主体内容。 特点: 可以用于检查资源的存在性、获取资源的元信息 (如最后修改时间、内容长度等),而无需下载整个资源,从而节省带宽和时间。
六、OPTIONS
用途: 用于获取服务器支持的 HTTP 请求方法和其他选项。 特点: 客户端可以通过 OPTIONS 请求了解服务器对特定资源的访问权限和支持的操作。
七、TRACE
用途: 用于诊断和调试,客户端可以发送 TRACE 请求来查看请求在网络中经过的路径。 特点: 通常在开发和测试环境中使用,以了解请求的处理过程。
这些请求方法为客户端与服务器之间的交互提供了丰富的方式,使得 Web 应用能够实现各种不同的功能。
HTTP 协议之URL
https://www.baidu.com/web/579.html?replytocom=22#respond 协议://域名:端口/虚拟目录/文件名?参数#锚点
HTTP 常见状态码
HTTP状态码是由三位数字组成的代码,用于表示客户端HTTP请求的响应状态。这些状态码可以分为五大类,每一类有不同的含义和常见的状态码。以下是一些常见的HTTP状态码及其解释:
1xx(信息性状态码)
-
100 Continue:客户端应当继续发送请求。这个临时响应表明客户端的请求正在被处理中,但服务器还没有对其作出最终的响应。
2xx(成功状态码)
-
200 OK:请求成功。一般用于GET与POST请求。
-
201 Created:服务器成功创建了新资源,并返回了其URI。
-
204 No Content:服务器成功处理了请求,但不需要返回任何实体内容。
3xx(重定向状态码)
-
301 Moved Permanently:请求的网页已永久移动到新位置。
-
302 Found(或 307 Temporary Redirect):请求的页面临时从一个URI改变为另一个URI。
-
304 Not Modified:如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。
4xx(客户端错误状态码)
-
400 Bad Request:服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
-
401 Unauthorized:请求要求进行身份验证。
-
403 Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求。
-
404 Not Found:服务器无法根据客户端的请求找到资源(网页)。
5xx(服务器错误状态码)
-
500 Internal Server Error:服务器遇到了一个未曾预料到的情况,导致其无法完成对请求的处理。
-
502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
-
503 Service Unavailable:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。
这些状态码为客户端和服务器之间的通信提供了一种标准化的方式,以便理解和响应各种情况。
内网和外网
1.内网(Intranet):
定义:内网是指组织内部的局域网络,通常用于企业、学校、政府机构等单位内部的通信和信息共享。内网通常由路由器、交换机等设备构成,且设备间的通信不依赖于外部互联网。
特点:
-
只限于组织内部使用。
-
地址范围通常属于私有IP地址段(如:192.168.x.x、10.x.x.x等)。
-
通过防火墙、路由器等安全设备进行隔离,防止外部网络的未经授权访问。
-
可以包括文件服务器、邮件服务器、数据库服务器等供内部使用的资源。
用途::在公司内部进行文件共享、业务管理、通讯、打印、数据库访问等。
2.外网(Internet):
定义:外网是指全球范围的公共互联网,是全球所有计算机和网络相互连接的庞大网络系统。外网允许用户访问全球范围的信息和服务。
特点:
-
面向全球用户,开放且无任何地理限制。
-
使用公有IP地址进行通信,地址可通过ISP(互联网服务提供商)分配。
-
提供广泛的在线服务,如网站浏览、社交媒体、云存储、电子邮件等。
-
外网通常不安全,容易受到黑客攻击、病毒和恶意软件的威胁。
用途:通过外网,人们可以进行在线交流、获取信息、开展电子商务等。
公网地址和私网地址
公网地址和私网地址是网络中两种不同类型的IP地址,它们的区别主要体现在是否可以在互联网上直接访问。
1.公网地址(Public IP Address)
定义:公网地址是指能够在全球互联网上唯一标识一台设备的IP地址。公网地址是由互联网服务提供商(ISP)分配的,可以直接与互联网中的其他设备进行通信。
特点:
-
唯一性:每个公网IP地址在全球范围内唯一,互联网上的设备通过公网IP相互通信。
-
可路由:公网IP地址是可以直接从外部互联网访问的,设备通过这个地址可以与外部网络通信。
-
由ISP分配:通常由网络运营商(如中国电信、联通等)提供,用户通过购买宽带服务获得。
用途:
-
公网IP常用于服务器、网站、云服务等需要与全球互联网用户交互的设备。
-
用户家庭或企业的路由器通常会有一个公网IP,用来连接到互联网。
2.私网地址(Private IP Address)
定义:私网地址是指在局域网(LAN)内部使用的IP地址,这些地址不能直接在互联网中访问,只能在私有网络内通信。私网地址是由RFC 1918标准规定的。
特点:
-
非唯一性:私网地址在多个局域网中可以重复使用,不要求全球唯一。
-
不可路由:私网地址不能直接被互联网上的设备访问,路由器和防火墙等设备需要进行NAT(网络地址转换)才能与公网通信。
-
用途广泛:私网地址通常用于家庭、公司、学校等内部网络中的设备通信。
-
私网地址范围
-
10.0.0.0
到10.255.255.255
(A类地址) -
172.16.0.0
到172.31.255.255
(B类地址) -
192.168.0.0
到192.168.255.255
(C类地址)
-
用途:
-
家庭网络中的设备(如电脑、打印机、手机等)通常使用私网地址。
-
企业或组织内部的设备通信也使用私网地址,外部访问则通过NAT或代理服务器。