RFC是什么

如果从RFC规范定义的语义来看:

GET方法就是安全且幂等的,因为它是「只读」操作,无论操作多少次,服务器上的数据都是安全的,

且每次的结果都是相同的。所以,可以对GET请求的数据做缓存,这个缓存可以做到浏览器本身上

(彻底避免浏览器发请求),也可以做到代理上(如nginx),而且在浏览器中GET请求可以保存为书

签。

POST因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是不安全的,且多次提交数据

就会创建多个资源,所以不是幂等的。所以,浏览器一般不会缓存POST请求,也不能把POST请求保

存为书签。

但是实际过程中,开发者不一定会按照RFC规范定义的语义来实现GET和POST方法。

上面提到的RFC是什么

RFC是 Request for Comments (请求意见稿)的缩写,是一系列由互联网工程任务组(IETF)发布的技术文档,用于 定义和规范化互联网协议、标准和技术规范。


关于RFC的关键点:

1. 本质作用

  • 互联网的"技术宪法":从TCP/IP、HTTP到Email格式,所有基础协议都由RFC定义
  • 每个RFC都有唯一编号(如RFC 7231定义了HTTP/1.1的语义)
  • 一旦发布,内容永不修改;若需更新,会发布新编号的RFC

2. 权威性

  • 文中提到的GET/POST的"安全"、"幂等"等语义,正是来源于RFC 7231的严格定义
  • 开发者理论上必须遵循RFC规范,否则不同系统间的互操作性会崩溃

3. 为什么实际开发会"违背"RFC?

  • 历史包袱:早期不规范的实现已形成事实标准(如用GET提交表单数据)
  • 便利性:开发者可能为图方便而"滥用"(如用POST实现查询接口,避免缓存问题)
  • 认知偏差:并非所有开发者都深入研读过RFC规范

4. 典型例子

  • GET:RFC规定用于"获取资源",参数应在URL中,长度受限
  • POST:RFC规定用于"提交数据",数据应在请求体中
  • 但现实中有开发者用GET提交大量数据,或用POST做删除操作,这些在RFC看来都是"不规范"的

简单说:RFC是技术标准的"官方定义书",但实际开发中可能出现"方言"式的变通用法。

相关推荐
硫酸锌016 小时前
安卓手机连接Windows电脑后通过DHCP服务为手机分配IP地址
android·windows·计算机网络
一条泥憨鱼1 天前
【计算机网络】| 详解链路层:MAC 地址与VLAN
网络·学习·计算机网络
ESDWAN2 天前
跨境网络延迟、抖动和丢包有什么区别?如何判断业务影响
开发语言·网络·计算机网络·php
一条泥憨鱼3 天前
【计算机网络】| 从ping 不通出发:NAT 与 DHCP 在做什么
运维·服务器·网络·计算机网络
Java成神之路-4 天前
【计算机网络】ICMP协议超全详解
计算机网络
流浪0014 天前
计算机网络篇5:UDP 收发接口 recvfrom 与 sendto 的参数语义
计算机网络·udp·sendto·recvfrom
.Hypocritical.4 天前
计算机网络】吃透 OSI 七层模型与 TCP/IP 协议栈
网络协议·tcp/ip·计算机网络
一条泥憨鱼6 天前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
为思念酝酿的痛7 天前
数据链路层--帧传输与链路控制
网络·网络协议·计算机网络·数据链路层
程序员z77 天前
【从0开始学计算机网络】| HTTP 协议的进化史
网络协议·计算机网络·http