HTTP 的方法和状态码

方法 表示这次 HTTP 请求,要进行一个什么动作。

这些说明是 HTTP 协议设计者的 "美好期许",程序员真正用的时候,不一定会遵守。GET 方法用的最多,"天下的方法有一石,其中 GET 占了八斗,POST 占了一斗,其他方法共分一斗"。

一、GET 方法

对于 GET 请求来说,通常情况下,是没有 body 的。GET 是否可以有body呢?++理论上++ 来说是可以的,但是非常非常少见。++HTTP协议就是在TCP的基础上,构造出特定格式的字符串,写到TCP socket里。++ (body放的是程序员自定义的数据)GET 是从服务器 "拿一个数据",到底拿哪个数据?有啥要求?上述信息可以通过 url中的路径url中的query string 传输给对方。

二、POST 方法

有两个场景特别容易出现 POST,分别是登录和上传文件

1. 登录 gitee

登录过程:(1) 发起 POST 请求,告知服务器你的用户名密码,服务器验证是否正确 (2) 如果正确就跳转到主页:

POST 请求一般是有正文的,完全也可以没有。

2. 上传头像

其他网站的登录和上传文件,大概率也是 POST (用GET也能实现)注:POST 还有很多其他的场景。

经典面试题:GET 和 POST 的区别

GET 和 POST 其实没有本质区别,能用 GET 的地方,也能换成 POST;能用 POST 的地方,也能换成 GET。但是在使用习惯上,还是有一定区别的。

  1. GET 通常用来表示 "获取数据" 语义,POST 表示 "提交数据" 语义。
  2. GET 通常把给服务器传递的数据放到 query string 中,POST 则通常放到 body 中。

三、状态码

状态码位于响应的首行中,这里体现的是服务器的反馈(成功or失败)

(1) 2xx 视为成功

200 OK 请求成功

(2)4xx 是客户端错误

404 Not Found 访问的资源服务器上不存在。

下面随意写一个URL:

这样的错误属于是客户端造成的,客服端构造了URL,URL包含路径,构造的内容有问题,所以服务器找不到。

403 Forbidden 拒绝访问

访问的页面无权限。例如访问别人的私有仓库:

也属于是用户操作有误,客户端错误。

405 Method Not Allowed

服务器不支持这个方法

(3)5xx 表示服务器错误

500 Internal Server Error

出现这个问题,说明服务器挂了

504 Gateway Timeout

Gateway指的是服务器那边的网关,当服务器非常繁忙的时候,就可能会导致出现超时的情况

(4)3xx 都是重定向

301 永久重定向(浏览器可以做缓存)

302 临时重定向

访问一个url1,自动跳转到url2

相关推荐
一个有温度的技术博主6 分钟前
网安实验系列四:信息收集-旁站、C段信息
网络
木下~learning14 分钟前
对于Linux中等待队列和工作队列的讲解和使用|RK3399
linux·c语言·网络·模块化编程·工作队列·等待队列
F1FJJ14 分钟前
Shield CLI 命令全解析:15 个命令覆盖所有远程访问场景
网络·数据库·网络协议·容器·开源软件
攻城狮在此1 小时前
华为汇聚交换机DHCP中继配置
网络·华为
婷婷_1721 小时前
【PCIe验证每日学习·阶段复盘01】Day1~Day7 纯理论深度复盘
网络·程序人生·芯片·每日学习·pcie 验证·ic 验证·pcie学习
Shepherd06192 小时前
【IT 实战】Apache 反向代理 UniFi Controller 的终极指北(解决白屏、502、400 错误)
运维·网络·apache·it·unifi
nbsaas-boot3 小时前
基于 HTTP 构建 MCP Tools 的完整工程解析
网络·网络协议·http·ai
i建模3 小时前
SSL: CERTIFICATE_VERIFY_FAILED feishu 机器人CoPaw
运维·网络·网络协议·ssl·openclaw
艾莉丝努力练剑3 小时前
alarm系统调用的一次性原理揭秘
linux·运维·服务器·开发语言·网络·人工智能·学习
王码码20353 小时前
Flutter for OpenHarmony:使用 pluto_grid 打造高性能数据网格
flutter·http·华为·架构·harmonyos