Web安全
计算机网络
物理层
数据链路层
网络层
运输层(传输层)
应用层
基础漏洞
01前端基础【HTML】
02前端基础【CSS】
03后端基础【PHP速通】
04后端基础【PHP面向对象】
05MySQL基础操作
06前后端联动【代码练习】
07SQL注入概述
07SQL 注入类型
08SQL注入 Labs
08SQL注入速查表
09XSS
09XSS【概述版】
09XSS Labs
10跨站请求伪造【CSRF】
11服务器端请求伪造【SSRF】
12XML 外部实体注入【XXE】
13代码执行漏洞
14命令执行漏洞
15文件包含漏洞
16文件上传漏洞
17反序列化漏洞
18业务逻辑漏洞
19未授权访问漏洞集合
20跨源资源共享【CORS】
21SSTI模板注入
22并发漏洞
23点击劫持【Clickjacking 】
24请求走私
25路径遍历
26访问控制
27身份验证漏洞
28WebSocket
29Web缓存中毒
30HTTP 主机头攻击
31信息泄露漏洞
32原型污染
33NoSQL注入
小程序
小程序抓包
SessionKey
Appsecret与access_token
openid
数据库
MySQL
Oracle
MongoDB
Redis
PostgreSQL
SQL server
中间件
Nginx
Apache HTTP Server
IIS
Tomcat
框架
ThinkPHP
Spring
Spring Boot
Django
访问控制
身份认证(Authentication)
授权(Authorization)
单点登录(SSO)
零信任(ZTA)
分布式身份(DID)
-
+
首页
应用层
## 概述  应用层是 **TCP/IP 协议栈的最顶层**,直接面向用户或应用程序,核心作用是为各类网络应用(如网页浏览、文件传输、邮件发送)提供**具体的通信规则和交互接口**,是用户感知网络服务的 “直接载体”。 ### 核心功能 应用层不处理底层的传输细节(如数据如何通过网络送达),而是聚焦于 “应用间的语义交互”,主要功能包括: **定义应用通信规则**:制定不同应用的 “对话语言”(如 HTTP 规定网页请求 / 响应的格式,SMTP 规定邮件发送的流程),确保不同设备上的同类应用能相互理解。 **处理应用逻辑**:对接应用程序的业务需求,比如网页浏览器(Chrome)通过 HTTP 协议向服务器请求网页数据,邮件客户端(Outlook)通过 SMTP 协议发送邮件。 **数据格式转换**:将应用产生的原始数据(如文字、图片)转换为适合网络传输的格式,或反之(如将服务器返回的二进制数据解析为网页内容)。 **提供用户交互入口**:通过应用程序的界面(如浏览器窗口、邮件客户端界面),让用户无需关注底层网络,直接使用网络服务。 ### 常见协议 | 协议名称 | 核心用途 | 典型应用场景 | | -------------- | ------------------------------------ | ------------------------------------------------------------ | | **HTTP/HTTPS** | 超文本传输协议(加密版为 HTTPS) | 网页浏览(访问百度、淘宝) | | **FTP** | 文件传输协议 | 服务器间文件上传 / 下载 | | **SMTP/POP3** | 邮件传输协议 / 邮件接收协议 | 发送邮件(SMTP)、接收邮件(POP3) | | **DNS** | 域名系统协议 | 将域名(如 [www.baidu.com](https://www.baidu.com))解析为 IP 地址 | | **Telnet/SSH** | 远程登录协议(SSH 为加密版) | 远程控制服务器(如管理云服务器) | | **DHCP** | 动态主机配置协议(部分归类为应用层) | 为设备自动分配 IP 地址 | | **WebSocket** | 全双工通信协议 | 实时聊天、直播弹幕、股票行情更新 | ### 与下层协议的关系 应用层依赖底层协议(运输层、网络层、数据链路层、物理层)实现 “数据送达”,其协作流程如下: 1. 应用层生成 “应用数据”(如网页请求、邮件内容),按自身协议格式封装(如 HTTP 请求头 + 请求体)。 2. 将封装后的数据传递给**运输层**(TCP 或 UDP),由运输层添加 “端口号”(标识应用进程)。 3. 运输层数据再传递给**网络层**(IP),添加 “IP 地址”(标识目标设备),后续经底层协议最终送达目标设备。 4. 目标设备接收后,从底层到上层逐层 “解封装”,最终将数据传递给对应应用层协议,由应用程序解析并呈现给用户。 ## 连接方式 网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务。 开发一种新的网络应用,首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系。目前流行的主要有以下两种: - 客户/服务器(Client/Server,C/S)方式 - 对等(Peer-to-Peer,P2P)方式 ### C/S 客户和服务器是指通信中所涉及的两个应用进程。 客户/服务器方式所描述的是进程之间服务和被服务的关系。 客户是服务请求方,服务器是服务提供方。 服务器总是处于运行状态,并等待客户的服务请求。  基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上。 由于一台服务器计算机要为多个客户机提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求的情况。 ### P2P 在P2P方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者。 目前,在因特网上流行的P2P应用主要包括P2P文件共享、即时通信、P2P流媒体、分布式存储等。 基于P2P的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑,它们通常位于住宅、校园和办公室中。  P2P方式的最突出特性之一就是它的可扩展性。因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低。 P2P方式具有成本上的优势,因为它通常不需要庞大的服务器设置和服务器带宽。为了降低成本,服务提供商对于将P2P方式用于应用的兴趣越来越大。 ## 动态主机配置协议DHCP ### 概述 动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)是**应用层的核心协议**,主要功能是**自动为网络中的设备分配 IP 地址及相关网络配置**(如子网掩码、网关、DNS 服务器等),无需管理员手动设置,大幅简化网络设备接入和管理流程。 DHCP 解决了两大核心问题: 1. **减少手动配置成本**:避免为每台设备(电脑、手机、打印机等)手动输入 IP 地址,降低配置错误(如 IP 冲突)的概率。 2. **高效利用 IP 资源**:通过 “租约” 机制临时分配 IP 地址,设备下线后回收地址,供其他设备复用(尤其适合设备数量多于可用 IP 的场景,如公共场所 Wi-Fi)。 ### 工作流程 当新设备接入网络(如手机连接 Wi-Fi)时,DHCP 通过以下四步完成地址分配,称为 “DHCP 会话”: 1、发现阶段(DHCP Discover) - 客户端(新接入设备)启动后,因无 IP 地址,会发送**广播报文**(目标 IP:255.255.255.255),内容为 “寻找 DHCP 服务器,请求分配 IP”。 - 该报文会在本地子网内传播,所有收到的 DHCP 服务器都会响应。 2、提供阶段(DHCP Offer) - DHCP 服务器收到 “发现” 报文后,从自身的**IP 地址池**(预配置的可用 IP 范围,如 192.168.0.100-192.168.0.200)中选择一个未分配的 IP,发送**广播应答**(包含拟分配的 IP、子网掩码、网关、DNS、租约期限等信息),告知客户端 “我可以给你分配这个 IP”。 3、请求阶段(DHCP Request) - 客户端可能收到多个服务器的 “提供”(如有多台 DHCP 服务器),会选择其中一个(通常是第一个收到的),再次发送**广播报文**,内容为 “我接受服务器 X 提供的 IP,请确认”。 - 广播的目的是告知其他服务器 “我已选择了其他服务器,你们可以收回提供的 IP”。 4、确认阶段(DHCP ACK) - 被选中的服务器收到 “请求” 后,发送**广播确认报文**(ACK),正式确认 “该 IP 分配给你,租约生效”。 - 客户端收到 ACK 后,即可使用该 IP 地址接入网络。 ## 域名系统DNS 域名系统(DNS,Domain Name System)是 **应用层的核心协议**,本质是 “互联网的地址簿”,核心作用是将人类易记的**域名**(如 `www.baidu.com`)转换为计算机可识别的**IP 地址**(如 `180.101.49.11`),解决 “IP 地址难记、域名难解析” 的问题,是用户访问网络服务的 “必经桥梁”。 ### 功能 DNS 的核心是 “翻译” 与 “定位”,主要功能包括: 1. **域名解析(正向解析)**:最核心功能,将域名映射为对应的 IP 地址(如将 `mail.qq.com` 解析为 `14.17.32.211`),是浏览器、APP 访问网站 / 服务的前提。 2. **反向解析**:将 IP 地址映射为对应的域名(如查询 `183.232.231.174` 对应 `www.taobao.com`),主要用于服务器身份验证(如邮件反垃圾邮件验证)。 3. **负载均衡**:通过解析到多个不同 IP(对应同一服务的多台服务器),分散用户请求(如 `www.baidu.com` 解析到多个 IP,避免单台服务器过载)。 4. **域名管理**:支持域名的注册、修改、过期管理,通过 DNS 服务器集群确保域名解析服务的稳定性和可用性。 ### 工作流程 当用户在浏览器输入 `www.baidu.com` 并回车时,DNS 通过以下 6 步完成解析,整个过程通常耗时**毫秒级**: **查询本地缓存**:浏览器 / 操作系统先检查本地缓存(如浏览器缓存、系统 Hosts 文件、本地 DNS 缓存),若之前解析过该域名,直接获取 IP,无需后续步骤(最快的解析方式)。 **请求本地 DNS 服务器**:若本地缓存无结果,设备会向**本地 DNS 服务器**(通常由宽带运营商或企业 IT 部门提供,如电信的 `202.97.224.68`)发送 “递归查询请求”(即 “帮我找到 `www.baidu.com` 的 IP”)。 **查询根 DNS 服务器**:本地 DNS 服务器若自身无缓存,会先向**根 DNS 服务器**(全球共 13 组,如 `.` 根域服务器)发送 “迭代查询请求”。根服务器不直接返回 IP,而是告知:“`www.baidu.com` 的顶级域是 `.com`,你去找 `.com` 顶级域 DNS 服务器”。 **查询顶级域 DNS 服务器**:本地 DNS 服务器向 `.com` 顶级域 DNS 服务器(管理所有 `.com` 域名)查询,顶级域服务器同样不返回 IP,而是告知:“`baidu.com` 的权威 DNS 服务器是 `dns.baidu.com`,你去问它”。 **查询权威 DNS 服务器**:本地 DNS 服务器向 `baidu.com` 的**权威 DNS 服务器**(百度自己管理的 DNS 服务器,存储 `baidu.com` 及其子域名的 IP 映射)查询,权威服务器直接返回 `www.baidu.com` 对应的 IP 地址(如 `180.101.49.11`)。 **返回结果并缓存**:本地 DNS 服务器将获取到的 IP 地址返回给用户设备,同时将该 “域名 - IP 映射” 存入自身缓存(有效期由 TTL 值决定,通常几分钟到几小时),方便后续其他用户查询时直接使用,减少重复步骤。 ### 域名结构 因特网采用层次树状结构的域名结构。 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。 - 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。 - 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。 - 完整的域名不超过255个字符。 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。 猜一猜这是几级域名:maolin101.com 顶级域名(Top Level Domain,TLD)分为以下三类: - 国家顶级域名nTLD:采用ISO 3166的规定,如cn表示中国,us表示美国,uk表示英国、等等。 - 通用顶级域名gTLD:最常见的通用顶级域名有七个,即:com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(美国教育机构)、gov(美国政府部门)、mil(美国军事部门)。 - 反向域arpa:用于反向域名解析,即IP地址反向解析为域名。 在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,将其教育和企业机构的二级域名定为ac和co,而不用edu和com。 我国则将二级域名划分为以下两类: - 类别域名,共七个:ac(科研机构)、com(工、商、金融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)和org(非营利性组织)。 - 行政区域名,共34个,适用于我国的各省、自治区、直辖市。例如:bj为北京市、sh为上海市、js为江苏省,等等。  这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点。 ### 域名服务器 域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。 DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。 **根域名服务器:**根域名服务器是最高层次的域名服务器;每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址;13个根域名服务器中的每一个都视为单个的服务器,但“每台服务器”实际上是由许多分布在世界各地的计算机构成的服务器群集。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器;这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址。 **顶级域名服务器:**顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名;当收到DNS查询请求时就给出相应的回答,可能是最后的结果,也可能是下一级权限域名服务器的IP地址。 **权限域名服务器:**权限域名服务器负责管理某个区的域名;每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系;权限域名服务器还知道其下级域名服务器的地址。 **本地域名服务器:**本地域名服务器不属于上述的域名服务器的等级结构;当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器;本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中;每一个因特网服务提供者ISP,一个大学,甚至一个大学里的学院,都可以拥有一个本地域名服务器,它有时也称为默认域名服务器;本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。 ### 递归查询  ### 迭代查询  由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:从请求主机到本地域名服务器的查询是递归查询;而其余的查询是迭代查询。 为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。 由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。 不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。 ## 文件传送协议FTP FTP 是 **应用层的经典协议**,核心功能是在客户端和服务器之间**高效传输文件**(上传、下载),支持批量文件处理、目录管理等操作,是早期互联网中文件共享的核心工具,至今仍在服务器管理、批量数据传输等场景中广泛使用。 ### 概述 **核心作用**:在不同主机(如本地电脑与远程服务器)之间传输任意类型的文件(文本、图片、视频等),支持双向传输(客户端→服务器上传,服务器→客户端下载)。 关键特点: - 基于 **TCP 协议** 实现(端口 21 用于控制,端口 20 或动态端口用于数据传输),提供可靠传输(避免文件传输中断或损坏)。 - 支持 **用户认证**(通过用户名和密码登录)和 **匿名访问**(无需密码,如公共资源服务器)。 - 支持文件管理操作(如创建目录、删除文件、重命名等),不仅是传输工具,也是远程文件系统的管理接口。 ### 核心工作原理:双连接机制 FTP 与众不同的是**同时建立两个 TCP 连接**,分别负责 “命令交互” 和 “数据传输”,两者独立工作: **控制连接(Control Connection)** - **作用**:传输控制命令(如 “登录”“上传”“下载”“列出目录”)和服务器的响应(如 “登录成功”“文件不存在”)。 - **端口**:固定使用 **TCP 21 端口**。 - **生命周期**:从客户端连接服务器开始,到客户端主动断开(或超时)为止,全程保持连接(即使没有数据传输,控制连接也不关闭)。 **数据连接(Data Connection)** **作用**:传输实际的文件数据(如上传的文档、下载的视频)或目录列表信息。 端口:不固定,分两种模式: - **主动模式(Active FTP)**:服务器主动发起连接,使用 **TCP 20 端口** 作为源端口,连接客户端的动态端口(由客户端指定)。 - **被动模式(Passive FTP)**:客户端主动发起连接,服务器开放一个临时动态端口(通常 1024-65535 之间),客户端连接该端口传输数据(更适合客户端在防火墙后的场景,避免被防火墙拦截)。 **生命周期**:仅在传输数据时建立,一次数据传输完成后立即关闭(如一个文件下载完成,数据连接断开,控制连接仍保持)。 ### 基本工作流程(以 “下载文件” 为例) **建立控制连接**:客户端通过 TCP 21 端口连接 FTP 服务器,发送登录信息(用户名 + 密码,或匿名登录)。 **服务器验证**:服务器验证登录信息,返回 “登录成功” 响应(若失败则返回错误码)。 **发送下载命令**:客户端通过控制连接发送 “下载文件” 命令(如 `GET filename.txt`)。 建立数据连接: - 主动模式:服务器通过 TCP 20 端口连接客户端指定的动态端口,建立数据连接。  - 被动模式:服务器开放临时端口并告知客户端,客户端主动连接该端口建立数据连接。  **传输文件数据**:通过数据连接将 `filename.txt` 的内容从服务器发送到客户端。 **关闭数据连接**:文件传输完成后,数据连接断开。 **后续操作**:客户端可继续发送其他命令(如下载另一个文件、上传文件),控制连接保持;若完成操作,客户端发送 “退出” 命令,控制连接关闭。 ### 登录方式与权限控制 **匿名登录**:无需用户名密码,通常使用 `anonymous` 作为用户名,邮箱地址作为密码(可任意填写),适用于公开文件共享(如软件镜像站)。 **用户登录**:需提供服务器预先配置的用户名和密码,登录后根据用户权限访问指定目录(如网站管理员登录服务器上传网页文件)。 **权限控制**:服务器通过配置文件(如 `/etc/vsftpd.conf` for vsftpd 服务)限制用户操作,例如:禁止匿名上传、限制用户只能访问自身目录(禁锢用户)、限制传输速率等。 ## 电子邮件 电子邮件E-mail是因特网上最早流行的一种应用,并且仍然是当今因特网上最重要、最实用的应用之一。 ### 组成 电子邮件系统采用客户/服务器方式。 电子邮件系统的三个主要组成构件:用户代理,邮件服务器,以及电子邮件所需的协议。 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。 邮件服务器是电子邮件系统的基础设施。因特网上所有的因特网服务提供者ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱。  ### SMTP 简单邮件传送协议(Simple Mail Transfer Protocol,SMTP),默认端口号25(明文)、465(SSL/TLS 加密,即 SMTPS)。 基本工作流程:  ### MIME SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象。 SMTP不能满足传送多媒体邮件(例如带有图片、音频或视频数据)的需要。并且许多其他非英语国家的文字(例如中文、俄文、甚至带有重音符号的法文或德文)也无法用SMTP传送。 为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展 (Multipurpose Internet Mail Extensions,MIME)。 增加了5个新的邮件首部字段,这些字段提供了有关邮件主体的信息。 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。 实际上,MIME不仅仅用于SMTP,也用于后来的同样面向ASCII字符的HTTP。  ### 邮件读取协议 邮局协议(Post Office Protocol,POP): - POP3是其第三个版本,是因特网正式标准。 - 非常简单、功能有限的邮件读取协议。 - 用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户方计算机。 - 不允许用户在邮件服务器上管理自己的邮件。(例如创建文件夹,对邮件进行分类管理等)。 - 默认端口号:110(明文)、995(SSL/TLS 加密,即 POP3S)。 因特网邮件访问协议(Internet Message Access Protocol,IMAP): - IMAP4是其第四个版本,是因特网建议标准。 - 功能比POP3强大的邮件读取协议。 - 用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此IMAP是一个联机协议。 - 默认端口号:143(明文)、993(SSL/TLS 加密,即 IMAPS)。 POP3和IMAP4都采用基于TCP连接的客户/服务器方式。 ### 基于万维网的电子邮件  ## 万维网 ### 概述 万维网(World Wide Web,WWW)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。 万维网是欧洲粒子物理实验室的Tim Berners-Lee最初于1989年3月提出的。  1993年2月,第一个图形界面的浏览器Mosaic;1995年著名的Netscape Navigator浏览器上市。  ### 浏览器 浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示。 不同的浏览器内核对网页内容的解析也有不同,因此同一网页在不同内核的浏览器里的显示效果可能不同。  ### 统一资源定位符 为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。 一般情况下由四个部分组成:<协议>://<主机>:<端口>/<路径>。 ### 文档  ### HTTP协议 超文本传输协议HTTP(HyperText Transfer Protocol),定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。  **HTTP/1.0**采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到响应后就立即关闭连接。 每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费2RTT的时间。 为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。 **HTTP/1.1**采用持续连接方式。在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。 TTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。这样就节省了很多个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档的效率。 报文格式: HTTP是面向文本的,其报文中的每一个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。     ### Cookie 早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计。 现在,用户可以通过万维网进行各种复杂的应用,如网上购物、电子商务等。这些应用往往需要万维网服务器能够识别用户。 Cookie提供了一种机制使得万维网服务器能够“记住”用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术。  ### 缓存与代理服务器 万维网缓存又称为Web缓存(Web Cache),可位于客户机,也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器(Proxy Server)。 Web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。   
毛林
2025年9月24日 11:54
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码