HTTP(HyperText Transfer Protocol)是用于分布式、协作式和动态Web的核心通信协议。它定义了浏览器和Web服务器之间如何传输超文本或文件。HTTP是一个无状态协议,这意味着每个请求和响应都是独立的,不依赖于前后请求的状态。
互联网发展初期,对网页的需求较为简单,主要是纯文本内容的传输。
http/0.9特点:
1.只支持GET请求,用于获取html文档。
2.没有请求头和响应头,通信极为简洁。
3.只能传输纯文本,不能传输多媒体。
4.早期简单的网页浏览,通常是一些静态的文本页面。
随着互联网的发展,人们对网页的内容和交互性的要求提高了。
http/1.0
1.引入了请求头和响应头,包含了一些基本的辕信息,如文档类型,日期等。
2.支持多种请求方法,如GET、POST和Head。
3.但是每次传输需要建立新的TCP连接,传输完成后立即断开,效率极其低下。
为了解决HTTP/1.0连接频繁建立断开的问题,提高网页加载速度和性能。
http/1.1
1.引入持久性连接(Keep-Alive),允许在一个TCP连接上发送多个请求和响应,减少连接建立的开销。
2.引入管道化(Pipelining)客户端可以在一个连接上连续发送多个请求,但服务器的响应顺序必须于请求顺序一致。
3.增加了更多的请求方法。如PUT、DELETE、OPTIONS等等。
4.引入缓存控制机制,通过头部字段控制缓存的使用。
广泛应用于大多数网站和web应用程序,是较为成熟的和稳定的版本。
随着web应用的日益复杂,已经不满足用户对网页的性能。
http/2特点
1.引入二进制分帧,将HTTP消息分解为更小的帧进行传输,提高传输效率和灵活性。
2.多路复用,可在一个连接上同时处理多个请求和响应,无需按顺序发送,提高并发处理能力。
3.头部压缩,使用HPACK算法对头部进行压缩,减少传输的数据量。
4.服务器推送,服务器可以主动向客户端推送资源,提高页面加载速度。
适用于对性能要求高的现代web应用,特别是需要快速加载大量的资源的场景。
虽然HTTP/2在性能上有了很大的提升,但仍然基于TCP协议,TCP建立握手会出现连接时间长,丢包重传效率低下的问题。
http/3特点:
1.基于QUIC协议,一种基于UDP的传输协议,具有更快的连接建立时间和更好的拥塞控制机制。
2.O-RTT建立连接,在某些情况下可以在第一次建立连接的时候开始发送数据,减少延迟。
3.连接迁移,即使网络环境发生改变,连接也可也保持。
4.前向纠错,在数据传输过程中可以检测一些错误,减少重传四处提高传输效率。
适用于对延迟敏感的应用,如在线游戏,实时视频通信,以及在网络环境不稳定的情况下,能够提供工号的性能和可靠性。
用途:请求指定的资源。
特点:
请求参数包含在URL中,以查询字符串的形式出现。
是一种安全的方法,不会对服务器上的数据进行修改。
适用于获取数据,如加载网页、获取API数据等。
由于参数在URL中可见,不适合传递敏感信息。
用途:向指定的资源提交数据。
特点:
请求参数包含在请求体中,而不是URL中。
可以传递大量数据,且数据在传输过程中是隐藏的。
通常用于提交表单、上传文件等操作。
是一种非幂等的方法,即多次相同的请求可能会产生不同的效果(如多次提交表单)。
用途:向服务器上传内容,替换指定资源的数据。
特点:
请求参数包含在请求体中。
如果资源不存在,则创建该资源;如果资源存在,则更新该资源。
是一种幂等的方法,即多次相同的请求会产生相同的效果。
用途:请求删除指定的资源。
特点:
请求参数可以包含在URL中,也可以包含在请求体中。
是一种幂等的方法,即多次相同的请求会产生相同的效果(资源被删除)。
用途:请求获取指定资源的响应头信息,而不返回响应体。
特点:
类似于GET请求,但只返回响应头信息,不返回响应体。
用于检查某个资源是否存在,或者获取资源的元数据。
用途:请求有关资源的通信选项,如支持哪些HTTP方法。
特点:
用于了解服务器的功能,如支持的HTTP方法、头信息等。
常用于跨域资源共享(CORS)的预检请求。
用途:回显服务器收到的请求,主要用于测试或诊断。
特点:
请求参数包含在请求体中。
服务器会将接收到的请求原样返回给客户端,用于检测请求在传输过程中是否被篡改。
用途:在客户端和代理服务器之间建立隧道,通常用于SSL加密通信。
特点:
用于通过代理服务器建立与目标服务器的安全连接(如HTTPS)
url:URL(Uniform Resource Locator,统一资源定位符)是互联网上用来标识某一资源的地址。在HTTP协议中,URL用于指定客户端请求的资源位置.
例如:
https://www.baidu.com/web/579.html?replytocom=22#repond
协议://域名:端口/虚拟目录/文件名?参数#锚点
详细解释
1. 协议部分
定义:指定使用的传输协议。
示例:http: 或 https:
作用:告知浏览器使用何种协议来访问资源。
2. 域名部分
定义:指定资源所在的服务器。
示例:www.aspxfans.com
作用:通过域名解析找到服务器的IP地址,从而进行通信。
3. 端口部分
定义:指定服务器上监听请求的端口号。
示例::80(HTTP默认端口)或 :443(HTTPS默认端口)
作用:帮助浏览器知道在哪个端口上与服务器通信。
4. 虚拟目录部分
定义:指定服务器上资源的路径。
示例:/news/
作用:指示服务器查找特定目录下的资源。
5. 文件名部分
定义:指定具体的资源文件。
示例:index.asp
作用:告诉服务器需要访问的具体文件。
6. 锚部分
定义:指定资源中的某个片段。
示例:#name
作用:浏览器会滚动到页面中具有该锚名称的位置。
7. 参数部分
定义:传递给服务器的额外信息。
示例:?boardID=5&ID=24618&page=1
作用:服务器可以根据这些参数来动态生成响应内容。
HTTP协议状态码用于表示服务器对请求的处理结果.
100 Continue:继续。客户端应继续其请求。
101 Switching Protocols:切换协议。服务器根据客户端的请求切换协议。
200 OK:请求成功。服务器已成功处理了请求。
201 Created:已创建。成功请求并创建了新的资源。
202 Accepted:已接受。已经接受请求,但未处理请求。
204 No Content:无内容。服务器成功处理了请求,但没有返回任何内容。
205 Reset Content:重置内容。服务器成功处理了请求,但没有返回任何内容。
301 Moved Permanently:永久移动。请求的资源已被永久的移动到新URI。
302 Found:临时移动。资源只是临时被移动。客户端应继续使用原有URI。
303 See Other:查看其他位置。服务器返回此代码时,不会返回网页内容。
304 Not Modified:未修改。自从上次请求后,请求的网页未修改过。
400 Bad Request:错误请求。服务器不理解请求的语法。
401 Unauthorized:未授权。请求要求身份验证。
403 Forbidden:禁止。服务器理解请求客户端的请求但是拒绝执行此请求。
404 Not Found:未找到。服务器找不到请求的网页。
500 Internal Server Error:服务器内部错误,无法完成请求。
502 Bad Gateway:错误网关。作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
定义:内网通常指一个组织机构内部的网络,它的范围相对较小,一般局限一个办公室、一栋楼或者一个企业园区内。
特点:
1.具有较高的安全性:由于内网与外部网络相对隔离,外部用户难以直接访问内网资源,因此内网通常具有较高的安全性。可以通过设置控制访问策略、防火墙等措施来进一步加强安全防护。
2.高效的资源共享:内网中的设备可以方便地共享文件、打印机、数据库等资源。
3.稳定的网络性能:内网网络性能相对稳定,因为内网的用户数量和流量通常是可控制的。可以通过优化网络框架、配置合适的网络设备来确保内网的高速稳定运行。
定义:外网是指连接全球各地的网络,通常由互联网服务提供商(ISP)提供接入服务。外网的范围非常广泛,可以覆盖全球各个角落。
特点:
1.开放性:外网是开放的,任何人都可访问,获取各种信息和服务。但是也带来了一些安全风险(信息泄露)
2.丰富的资源:外网拥有海量的信息和服务(如网上购物,浏览新闻,观看视频,玩游戏等)
3.动态性:外网的网络环境是可变的,网络流量、用户行为等因素是都会影响到外网的性能和稳定性。因此外网的服务质量可能有所波动。
定义:全球唯一IP地址,由互联网服务提供商(ISP)分配给用户的。
特点:
1.全球唯一性:公网地址在互联网内是唯一的,不同的设备不能拥有相同的公网地址。
2.可路由性:公网地址可以在互联网上被路由,使得不同的网络中的设备可以互相通信。
3.有限性:由于IPv4地址资源有限,公网地址的数量也是有限的。随着互联网的发展,公网地址的需求不断增加,导致公网地址资源日益紧张。
用途:
服务托管:如果企业或个人需要将自己的服务器托管在数据中心,就需要使用公网地址,让全球的用户都能访问到服务器上的服务。
网站建设,远程办公等。
定义:私网地址也成为本地IP地址,是一个组织或机构内部使用的IP地址,不能在全球互通也不能被直接访问。
特点:
1.可重复使用:私网地址可以在不同组织机构内部重复使用。
2.灵活性:私网地址可以在不同的组织或机构内部自行管理,具有较高的灵活性。
3.安全性:由于私网地址不能在全球互联网上被直接返回,因此可以提高网络的安全性。
私网范围:
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255