Web网络基础
前言
今天听到强哥@红烧花园宝宝问了一个很基础的web知识,虽然答上来了但感觉有些生疏了,就正好借这个给新生讲课的机会,梳理一下web网络的一些基础知识,巩固一下。
Web概念
定义
Web就是万维网(World Wide Web)的简称,是我们日常浏览网页、看视频、查资料等互联网所依赖的一个信息系统,本质是你用浏览器发请求,服务器把页面或数据传回来展示给你看。
组成
网页:用HTML编写的内容页面,可以包含文字、图片、视频、链接等

像这样一个网站它的网页,我们可以ctrl+u查看源码,就是用HTML语言编写的。
浏览器(Browser):就是用来访问和展示网页的,比如谷歌浏览器,火狐浏览器还有微软这种
Web服务器:用来存放网页内容的服务器,当用户访问网页的时候,服务就会把网页发送给浏览器。常见的服务器比如Apache,Nginx等等
HTTP/HTTPS协议:网页通信的规则,主要是让浏览器和服务器“对话”
- HTTP协议:明文传输,你发的账号密码、Cookie 都能被中间人直接看到,默认走 80 端口
- HTTPS协议:在 HTTP 基础上套了一层 SSL/TLS 加密,数据被加密,中间人截了也看不懂,默认走 443 端口,现在正规网站基本都是它
IP概念
定义
IP是互联网协议(Internet Protocol)的缩写,是计算机网络中用于标识设备地址和实现网络通信的核心协议之一。简单来说就是设备的“网络门牌号”,有了它,数据才知道该往哪台设备送。
主要作用
- 设备标识:当设备连接到网络的时候,就会自动被分配到一个唯一的IP地址,作为标识,这就相当于一个门牌号,可以让数据准确的传送到目标设备
- 数据传输:IP负责把数据从一个设备送到另一个设备,相当于邮局投递的地址系统
IP地址类型
- IPv4:IPv4是主流使用的协议,格式如192.168.1.1(四组十进制数字,每组范围是0~255,用点分隔)总共约42亿个地址
- IPv6:为了解决IPv4地址枯竭的问题而提出的,是新一代协议,格式为
2001:0db8:85a3:0000:0000:8a2e:0370:7334(128 位,八组十六进制数字组成,以冒号分隔,更长更复杂),地址数量几乎无限
公网IP和私网IP
- 公网IP:公网IP是互联网上的唯一地址(比如上网时用的IP)
那什么是互联网呢,最常听到的一个名词,但具体概念可能会混淆。互联网就是全球所有网络连在一起的大网络,没有边界,简单来说就是一个只要有网就可以连的网络
- 私网IP:私网IP就是局域网中使用的地址(比如说家里的wifi路由器分配的
192.168.x.x)
那和互联网对应的就是局域网。局域网就是一个局部的网络,比如家里的wifi,公司的办公网,学校机房的网络等等,可以把它想象成是小区内部的路,传输的数据都是在这些内部路上跑的,同样你可以访问到外界,但是外界正常默认情况下是无法访问到你的局域网的。就比如192.168.x.x、172.16.x.x、10.x.x.x,这就是比较常见的内网IP,别人无法访问到的
IP地址和域名的关系
域名
本质上是互联网上用于标识主机或服务逻辑归属的、便于人类记忆的层次化字符标识,其核心功能是通过 DNS(Domain Name System,域名系统)完成与 IP 地址的映射解析,从而替代纯数字 IP 进行资源定位,域名只是便于记忆的“人类语言”,实际通信时会通过DNS系统将其转换为IP地址。
DNS系统
本质上是互联网的一套分布式、层次化的“电话簿”,核心作用就是在域名和IP地址进行双向映射解析,就是把域名这个“人类语言”转化为计算机可以看懂的IP+端口+协议
特殊IP地址
回环地址
定义:凡是127开头的都是回环地址(127.0.0.0~127.255.255.255),它所在的回环接口一般可以被理解为虚拟网卡,并不是真正的路由器接口,本质上是主机内部预留的一套“自洽型”虚拟网络接口地址。
作用:127.0.0.1是最常见的回环地址,用于让设备向自己发送网络请求,而不是发给其他设备,主要用于本机网络功能的测试和调试
localhost
定义:是 RFC 6761 定义的保留主机名,属于应用层逻辑别名,一般Windows系统默认将localhost指向127.0.0.1,但localhost指向的IP地址是可以配置的。
配置文件:
- Windows系统:
C:\Windows\System32\drivers\etc\hosts - Linux/macOS:
/etc/hosts
看到这里我就想到这个可以配置要怎么理解呢,就可以类似于一个域名解析,默认是把localhost解析为127.0.0.1,但是进行配置修改了之后比如说改成10.10.10.10 localhost,那么这个时候访问localhost指向的就不再是127.0.0.1,而是10.10.10.10。
那这里可以有一个小提问就是localhost和127.0.0.1回环地址都是指向的本机回环接口,那么根据上面我们讲过的一些知识能想到两者有什么区别吗?很简单的点,区别就是localhost它是域名,而127.0.0.1是IP
0.0.0.0
定义:一个特殊的IPv4地址,不是一个真实的IP地址,它不能用来“上网”,只能用于本机/路由规则,在本机表示“所有 IPv4 接口”,在路由表中表示“所有未知目的地”。
特点:不能被ping通,监听0.0.0.0的端口就是监听本机中所有IP的端口
子网掩码
定义
子网掩码是IPv4网络中用于区分IP地址中“网络位”和“主机位”32位二进制掩码,常见格式为:255.255.255.0,那对于这个255.255.255.0,表示如果两个IP的前三位一样,就是处于同一个网段,可以直接通信。就比如一个IP是192.168.1.1,一个是192.168.1.2,子网掩码是255.255.255.0,那么前面两个IP就是处于一个网段,就是可以直接通信的。
作用
子网掩码的作用是界定IP地址的网络位和主机位,用于判断通信是否同网段、支撑路由转发以及划分子网控制广播域,它就是网络通信和网络安全边界的一把基础标尺。
怎么通过子网掩码去判断是网络位还是主机位呢?根据一个核心规则:1表示网络位,0表示主机位,那这个1和0就是对应的子网掩码转化成的二进制。
1 | |
网关
定义
网关是一种网络设备或者软件,主要作用是实现不同网络之间的通信和数据转换。它能连接两个或者多个采用不同协议、架构或者地址空间的网络(比如局域网与广域网、以太网与无线网络等等),对数据格式,协议进行转换,确保不同网络中的设备可以相互识别和交换信息。例如,家庭网络中,路由器通常兼具网关的功能:它一边连接家庭内部的局域网(比如电脑、手机等设备),另一边连接运营商的广域网(互联网),负责在两者之间转发和转换数据,让家庭设备能介入互联网。
广域网,它不等同于互联网,广域网是一个技术概念,就是指覆盖城市、国家甚至跨国的远距离计算机的网络。而互联网是一个具体的实例,两者是一个包含关系,互联网是由全球无数个局域网和广域网通过TCP/IP协议族互联啊而成的全球共有网络。
IP地址分类
传统的 IP 地址分类(A-E 类)是靠固定掩码切分“网络位/主机位”的古早规则
A类地址
- 用途:超大型网络,比如跨国集团、运营商骨干、早期国家级/军用网络。
- 默认掩码:255.0.0.0(即/8)
- A段范围:
1.0.0.0~126.255.255.255(注:127.x.x.x为回环保留) - A 段 IP 总数:一个 A 段包含 2²⁴ =16,777,216个 IP
B类地址
- 范围:128.0.0.0~191.255.255.255
- 子网掩码:255.255.0.0.0(即/16)
- IP总数:2¹⁶ = 65536个IP
- 用途:大型网络,比如大学、企业
C类地址
- 范围:
192.0.0.0~`235.255.255.255` - 子网掩码:255.255.255.0(即/24)
- IP总数:2⁸ = 256 个 IP
- 用途:小型网络,如家庭、工作组
网络类型
公网
定义
公网就是整个互联网,可以被全球访问的网络,任何连上互联网的网络都可以被称为公网。
公网IP
公网IP是唯一的、每一个连上互联网的设备都分配了一个公网IP地址。
用途
公网IP是网站服务器、游戏服务器等对外服务的基础,没有公网IP、外部用户无法访问服务器上的资源,使用公网IP,可以远程访问设备。
内网
定义
内网就是指在家庭、公司、学校等本地网络中使用的网络,不能之间被互联网访问,它是不直接暴露在公网上的,靠 NAT 和网关跟互联网“单线联系”。
内网IP
内网IP地址是专门为内网使用的IP地址,不能之间在互联网上被识别。常见的内网IP段包括:192.168.x.x、10.x.x.x、172.16.x.x到172.31.x.x.
NAT技术
当内网中的设备想要访问互联网时,会通过一种叫“NAT(网络地址转换)”的技术,暂时把内网IP转换成一个公网IP,以便访问外部网络资源。
局域网
定义
局域网属于物理概念,表示一小个范围(比如家、公司、教室)内部租车给的网络。
局域网与内网关系
局域网是技术概念,内网是业务/安全概念;局域网侧重“物理范围小”,内网侧重“不暴露公网”。绝大多数情况下,咱们说“内网”指的就是以局域网为主体的私有网络,两者在日常和安服语境里基本可以划等号。整栋办公楼就是“内网”,每台设备有自己在内网中的 IP 地址(内网 IP),比如 192.168.1.2。外面的人想联系楼里的某台设备时,必须通过总台转接,这个总台类似于网络中的 NAT,会把内网 IP 换成公网 IP,以便让外面的人找到目标设备。两者在日常和安服语境里基本可以划等号。局域网就是指地理范围小的网络,内网指使用私有 IP、不直接暴露在公网的封闭网络。它通常由一个或多个局域网通过路由器/专线连接起来组成。
内网穿透
概念
内网穿透是为了解决没有公网地址但又想可以从外部访问的问题。主要是通过在有公网IP的服务器上运行反向代理服务与局域网内某主机上运行的反向代理服务(Web服务器)之间建立一个安全的通道。远程通过访问公有云主机反向代理服务,跳到局域网服务器,并且可以通过它来间接访问局域网内其他存活的主机。
内网穿透服务示例
一般提供这个服务的应有有NKN、蒲公英、DDNSTO等等,各家采用的方式都不一样。
网页、网站、网络服务器和搜索引擎
网页定义
网页是可以显示在网络浏览器(比如火狐、谷歌、微软)上的文档。
网站定义
网站是一个由许多网页组合在一起,并常常以各种方式相互连接的网页组成的集合。网站常被称为“website”或者简称为“site”(站点)
Web服务器定义
Web服务器是一个在互联网上托管网站的计算机,能够接收来自客户端的请求,并根据请求返回对应的网页、图片、视频、文件等资源,像Apache、Nginx等都是常见的Web服务器软件。
搜索引擎定义
搜索引擎是帮助你查找其他网页的网络读完,比如谷歌,Bing,百度等等。
旁站定义
同一服务器上的其他网站,在进行渗透测试的时候,如果目标网站难以直接攻破,可以寻找旁站,尝试getshell进行提权,简单来说就是在同一个 Web 服务器(同一个 IP)上,运行的其他网站/业务系统。
URL
作用
URL(统一资源定位符)是因特网中的唯一资源的地址。它是浏览器用于检索已发布资源(例如 HTML 页面、CSS 文档、图像等)的关键机制之一,就是 Web 世界里一个资源的“完整通信地址”
组成
理论上说,每个有效的URL都指向一个唯一的资源。URL由不同的部分组成,其中一些是必须的,而另一些是可选的
常见格式:scheme://user:password@host:port/path?query#fragment
- scheme(协议):必须的,表示的是用什么方式去访问资源,例如:http,https,file等等
- user:password@(用户:密码@):可选。早期用于 FTP/HTTP 基础认证之类,比如:
ftp://user:password@192.168.1.10/file.txt,但是现在网页里很少见,也不安全,很多浏览器/服务已经不支持或限制显示。 - host(主机):通常必须。可以是域名或 IP,例如:
www.example.com、192.168.1.100、10.0.0.5,它决定“去哪台服务器”。host文件位于C:\Windows\System32\drivers\etc\hosts,相当于一个本地的 DNS 解析器,允许你在本地覆盖或自定义特定域名的 DNS 解析。 - port(端口):可选。不写就用协议默认端口。
http默认 80,https默认 443。
常见的对应的默认端口
| 端口 | 服务 |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 8080 | HTTP 代理 / Tomcat / JBoss |
| 3306 | MySQL |
| 1433 | SQL Server |
| 6379 | Redis |
| 22 | SSH |
| 21 | FTP |
- path(路径):可选,但常见。表示服务器上的资源位置/路由。例:
/index.html、/login.php、/api/user
域名
定义
域名就是互联网上服务器的“名字”,用于替代难记的IP地址,比如:www.baidu.com就是一个域名
结构
由顶级域(TLD,如.com)、二级域(如example)、子域名(如www)组成。
顶级域
常见顶级域:.cn、.org、.edu、.net、.gov。顶级域名既可以包含拉丁字母,也可以包含特殊字符。顶级域名最长可以达到63个字符,虽然大多数常见的都是两到三个字符。
DNS
定义
DNS是“域名系统”,它像互联网的“电话簿”,负责把人类可读的域名转换为IP地址。
工作原理
当访问一个URL的时候,浏览器会先询问本地DNS缓存,如果不知道这个域名的IP地址,那么会询问DNS的服务器,DNS服务器会告诉浏览器域名对应的IP地址,然后浏览器使用这个IP地址和服务器简历联系,加载网页。
端口
定义
端口(Port)是计算机上某个具体“应用程序/服务”的逻辑门牌号,用来区分同一台设备上不同的网络服务。
分类
- 知名端口:0~1023
- 注册端口:1024~49151,可以由用户进程或者应用程序注册使用。
- 动态或私有端口:通常由客户端应用程序动态分配
端口与服务
通过IP地址和端口号的组合,网络通信可以准确地将数据包发送到目标服务。这种方式确保了同一台设备上可以同时运行多个网络服务而不会发生冲突。
路径
定义
路径(Path)是 URL 中用于指定服务器上某个文件、目录或接口逻辑位置的部分,相当于 Web 服务器上的“文件目录结构”或“路由地址”。
查询参数
定义
查询参数就是 URL 中 ? 后面用 key=value 传数据的地方,多个用 & 分开,用来给服务器/接口传递额外请求条件。
例如:
1 | |
片段标识符
用来定位页面内位置或给前端路由/状态使用;它在 # 后面,通常不发送到服务器。
代理
代理服务器(Proxy Server)定义
代理服务器是一个位于客户端与目标服务器之间地“中间服务器”,它代表客户端向目标服务器发起请求。用户通过代理服务器转发网络请求和响应。
正向代理
定义
正向代理是客户端主动请求代理服务器,代理服务器再请求目标服务器。比如A想访问C,B在中间充当代理设备,不管是哪个方向的流量,B都会将流量的发送者先改成自己,然后再将流量发出去,所以对于C来说,B就是客户端。
应用场景
假设我们攻击一台机器,并且这个机器没有防火墙或者没有外部向内部发起连接的限制,此时我们打开这个机器的一个端口,然后用自己的机器主动去连接目标机器,最后我们以这个机器为跳板去访问它内网的其它设备就是正向代理。就是自己的机器是A,把 B 作为正向代理服务器,给 B 开一个端口,让 A 去连 B,通过 B 去访问 B 能到达的任何目标(包括外网或 B 所在内网的主机)
反向代理
定义
反向代理是被攻击机主动请求代理服务器建立代理。假设我们攻击一台机器,这个机器是存在防火墙或者存在外部向内部发起连接的限制,此时我们就可以再本地开启一个端口去监听,让被攻击机主动请求我们的监听端口,然后我们以这个机器为跳板访问内网其他设备就是反向代理。
反向代理和正向代理的区别
正向代理:代理客户端,“我”用代理去访问别人
反向代理:代理服务端,“别人”访问我时先经过代理
正向代理是“我连代理,代理帮我”;反向代理是“别人连代理,代理帮服务器”。
VPN
VPN(Virtual Private Network,虚拟专用网络)就是在公共网络(如互联网)上,通过加密隧道把你的设备“逻辑上接入”到另一个私有网络的技术。
VPN与代理的对比
VPN通常会对用户的流量进行端到端的加密,从用户设备到VPN服务器的整个过程都是加密的,提供更高的安全性和隐私保护。代理一般不会加密数据,仅是通过代理服务器中转数据,因此隐私保护和安全性较低。如果需要加密功能,则需要HTTPS或者SOCKS代理,且加密强度对于VPN较低
VPN性能
由于VPN加密数据并覆盖所有流量,因此对带宽和性能的要求都比较高,可能会造成一定的延迟,有七千是在加密协议较强或者网络状况不好的情况下。代理的性能一般会比VPN的高一些,因为它不加密数据且只作用与特定的应用,因此在带宽消耗和延迟上表现较好。
CDN
内容分发网络是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
当你访问一个网站时,如果没有 CDN,所有请求都会发送到网站的源服务器(源站); 而使用 CDN 后,你会优先访问离你最近的 CDN 节点,获取网页、图片、视频等内容。
shell
定义
Shell 既是一种命令语言,又是一种程序设计语言,在中文中解释“外壳”的意思,就是操作系统的外壳。工作中我们通过shell命令来操作和控制操作系统,在Linux操作系统中的Shell命令就包括touch、cd、pwd、mkdir等等。总结来说,Shell是一个命令解释器,用户输入命令时,shell解释器负责将命令解释给内核,内核对程序的运行或对计算机进行控制,最后处理完后将结果反馈给用户。
shell script 脚本就是由Shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可运行。它通过解释器解释运行,因此速度相对来说就比较慢。
比较常用的命令有cat(查看文件内容) mv(移动/重命名文件) mkdir(创建目录) rm(删除文件/目录) cd(切换目录) touch(创建空文件 / 更新时间戳) pwd(显示当前所在目录)ls(查看目录)等等
Webshell
渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的 WEB 就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对 Web 服务器有一定的操作权限,而webshell常以网页脚本的形式出现。常见的WebShell使用asp、jsp和php来编写,提供了如执行系统命令、文件上传下载、数据库管理等功能。webshell管理工具有蚁剑,冰蝎,哥斯拉。你们所知的一句话木马就是一个最简单的webshell:<?php @eval($_POST['webshell']);?获取webshell的动作又叫做getshell
eval会把传入的字符串当成 PHP 代码执行
反弹shell
攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,即为反向连接。
反弹shell(Reverse Shell)是一种常见的攻击方式,通常用于远程控制目标系统。它与传统的“反向连接”(Reverse Connection)相似,通过允许目标系统主动连接回攻击者的机器,从而绕过防火墙或NAT(网络地址转换)等网络安全措施。
反弹 shell 是一种网络攻击技术,它允许攻击者在远程目标机器上执行一个命令,使得目标机器主动向攻击者的机器发起网络连接,将一个命令行 shell(如 bash、cmd 等)提供给攻击者,从而让攻击者能够控制目标机器的 shell,就好像直接在目标机器上操作一样。
常见情景
反弹shell通常适用于如下几种情况:
目标机因防火墙受限,目标机器只能发送请求,不能接收请求。
目标机端口被占用。
目标机位于局域网,或IP会动态变化,攻击机无法直接连接。
对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知的。
执行命令无回显
反弹shell示例(利用服务器控制kali)
在服务器上监听一个端口
1 | |
在kali上利用bash指令去强行访问监听的这个端口
1 | |

远程连接协议
远程连接协议有:telnet、ssh、ftp,都用于在一台电脑上远程操作另一台电脑或者传输数据

Telnet
- 功能:远程登录服务器,执行命令(不加密)
- 安全性:极低、明文传输
- 端口号:默认为23
- 命令示例:
telnet 192.168.1.1 23,如果目标192.168.1.1的 TCP 23 端口开放且运行着 Telnet 服务,终端会进入 Telnet 交互界面,紧接着出现类似login的提示,要求你输入用户名和密码
ssh
- 功能:远程安全登录 + 命令行控制 + 端口转发 + 文件传输(scp/sftp)
- 安全性:非常高,默认加密通信
- 端口号:默认 22
- 支持密码登录或公钥登录
- 可通过 sftp、scp 进行安全文件传输
- 示例命令:ssh user@192.168.1.1
FTP
- 功能:远程文件上传、下载
- 安全性:普遍 FTP 是明文传输,存在安全隐患
- 端口号:默认 21
- 支持目录浏览、断点续传
- 示例命令:ftp 192.168.1.1
三者对比总结表
| 对比项 | Telnet | SSH | FTP |
|---|---|---|---|
| 主要用途 | 远程控制终端 | 安全远程控制终端 | 文件传输 |
| 是否加密 | 不加密 | 全程加密 | 普通FTP不加密 |
| 默认端口 | 23 | 22 | 21 |
| 是否安全 | 非常不安全 | 安全性高 | 普通FTP不安全(建议使用SFTP/FTPS) |
| 文件传输 | 不支持 | 支持 | 支持 |
| 常用工具 | telnet命令行 | ssh、putty、Xshell等 |
FileZilla、Lftp等 |
请求方法
在网络请求(比如用户通过浏览器访问资源、CDN 节点从源站拉取内容等场景)中,“请求方法” 指的是客户端(如浏览器、CDN 节点)向服务器发送请求时,表明 “操作意图” 的标准指令。
| 序号 | 方法 | 描述 | 特点 |
|---|---|---|---|
| 1 | GET | 从服务器获取资源。用于请求数据而不对数据进行更改。例如,从服务器获取网页、图片等。 | 参数在 URL 里,会被日志记录;一句话木马常用 $_GET 或 $_POST 接收命令 |
| 2 | POST | 向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。 | 请求体传参,蚁剑/菜刀默认用 POST;比 GET 隐蔽,但仍可被 WAF/流量分析捕获 |
| 3 | PUT | 向服务器发送数据以更新现有资源。如果资源不存在,则创建新的资源。与 POST 不同,PUT 通常是幂等的,即多次执行相同的 PUT 请求不会产生不同的结果。 | RESTful API 常见,未授权访问可导致任意文件上传/删除(WebDAV 漏洞经典场景) |
| 4 | DELETE | 从服务器删除指定的资源。请求中包含要删除的资源标识符。 | RESTful API 常见,未授权访问可导致任意文件上传/删除(WebDAV 漏洞经典场景) |
| 5 | PATCH | 对资源进行部分修改。与 PUT 类似,但 PATCH 只更改部分数据而不是替换整个资源。 | RESTful API 常见,未授权访问可导致任意文件上传/删除(WebDAV 漏洞经典场景) |
| 6 | HEAD | 类似于 GET,但服务器只返回响应的头部,不返回实际数据。用于检查资源的元数据(例如,检查资源是否存在,查看响应的头部信息)。 | 信息探测,轻量级资产指纹识别 |
| 7 | OPTIONS | 返回服务器支持的 HTTP 方法。用于检查服务器支持哪些请求方法,通常用于跨域资源共享(CORS)的预检请求。 | 看服务器”开放了哪些动作”,暴露攻击面;CORS 预检可测跨域策略宽松度 |
| 8 | TRACE | 回显服务器收到的请求,主要用于诊断。客户端可以查看请求在服务器中的处理路径。 | 开启后有 XST(跨站追踪)风险,可劫持 Cookie;生产环境应禁用 |
| 9 | CONNECT | 建立一个到服务器的隧道,通常用于 HTTPS 连接。客户端可以通过该隧道发送加密的数据。 | HTTP 代理隧道基础,可穿防火墙;也是 HTTPS 透传机制,流量加密后 IDS 难识别内容 |
状态码
| 状态码范围 | 分类名 | 说明 |
|---|---|---|
| 1xx | 信息响应 | 请求已接收,继续处理 |
| 2xx | 成功响应 | 请求成功 |
| 3xx | 重定向响应 | 需要进一步操作,如跳转 |
| 4xx | 客户端错误 | 请求有问题(URL 错误、权限不足) |
| 5xx | 服务器错误 | 服务器自身出错 |
2xx 成功
| 状态码 | 含义 | 说明 |
|---|---|---|
| 200 | OK | 请求成功并返回数据 |
| 201 | Created | 请求成功,资源已创建(常用于 POST) |
| 204 | No Content | 请求成功,但无返回内容 |
3xx 重定向
| 状态码 | 含义 | 说明 |
|---|---|---|
| 301 | 永久重定向 | 资源永久搬家(浏览器会记住) |
| 302 | 临时重定向 | 资源临时搬家(不会缓存) |
| 304 | Not Modified | 资源未改变,使用缓存 |
4xx 客户端错误
| 状态码 | 含义 | 说明 |
|---|---|---|
| 400 | Bad Request | 请求格式错误 |
| 401 | Unauthorized | 未授权(如需要登录) |
| 403 | Forbidden | 拒绝访问(权限不足) |
| 404 | Not Found | 请求的资源不存在 |
| 405 | Method Not Allowed | 请求方法不被允许(如用GET访问只能POST的接口) |
5xx 服务器错误
| 状态码 | 含义 | 说明 |
|---|---|---|
| 500 | Internal Server Error | 服务器内部出错 |
| 502 | Bad Gateway | 网关错误(比如 CDN 访问源站失败) |
| 503 | Service Unavailable | 服务不可用(服务器可能过载或维护) |
| 504 | Gateway Timeout | 网关超时(常见于反向代理) |
重定向
定义
重定向是一种网络技术,它将用户从一个 URL 自动引导到另一个 URL 的过程。当用户请求访问一个网页或资源时,服务器会向用户的浏览器发送一个特殊的响应,指示浏览器跳转到另一个地址。
举例理解
想象一下,你要去一家商店(这就好比你在浏览器中输入一个网址,想要访问一个网页),但是当你到达原来商店的地址时,发现商店已经搬到另一个地方啦 不过别担心,商店老板在原来的地址贴了一张纸条(服务器发回的信息),告诉你新的商店位置在哪里。于是,你就根据纸条上的信息,去到了新的商店地址(浏览器根据服务器的信息,自动跳转到新的网址),这个过程就是重定向。
分类
永久重定向
301 永久重定向是服务端通过 Location 头宣告资源归属发生不可逆变更的强信令机制,客户端及 CDN 会据此长期缓存跳转关系。
举例理解
商店老板决定以后都在新的地址营业啦,而且以后不管谁来原来的地址,都会看到那张纸条,让大家都去新地址。这就是 “永久重定向”,像你经常看到的一些网站页面,它可能更新了网址,然后把旧网址永久重定向到新网址,这样你下次访问旧网址时,会直接跳到新网址,就不用再看那张纸条啦。
临时重定向
302 临时重定向仅表示资源位置发生短暂变更,客户端严禁缓存跳转关系,每次访问必须重新向原服务器发起请求。
举例理解
商店可能是因为装修或者其他临时的原因暂时搬到新地址,等过一段时间可能还会搬回来。这时候老板也会贴一张纸条告诉你新地址,但可能过一段时间你再去原来的地址,就不会看到纸条啦,因为商店又搬回去了。这就是 “临时重定向”,比如网站因为维护暂时把页面放到了另一个地址,等维护结束,你可能又可以直接访问原来的地址,而不用再被重定向啦。
总结
一些WEB网络基础的概念差不多就这些了,之后有想到会继续补充。