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

相关推荐
裕晟资质规划10 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
轻舟技术A10 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
Escalating_xu11 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
NetX行者11 小时前
Python 工程化入门:从脚本到规范的 Python 项目结构
网络·python
Yang961111 小时前
从相位噪声到实时带宽:HD-063B支撑的频谱实验项目
网络
happyprince11 小时前
01-整体观-DeepSeek-V4.1-Flash全貌解读
网络
是真的小外套11 小时前
2023年软考中级信息安全工程师|选择题考点+5道案例分析真题解析(含答案)
java·服务器·网络
一条泥憨鱼12 小时前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
Moyu_Friday12 小时前
网络安全基础-计算机网络应用与协议
网络协议·计算机网络