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

相关推荐
ragnwang3 小时前
wget 命令速查手册 | HTTP / FTP 文件下载全指南
数据库·redis·http
哈乐4 小时前
主流网络协议--助记
网络·网络协议
缘友一世4 小时前
杀软绕过技术和MSFvenom编码器学习
网络·学习·安全
程序猿阿伟4 小时前
《3D动作游戏受击反馈:从模板化硬直到沉浸式打击感的开发拆解》
前端·网络·3d
Ronin3055 小时前
【Linux网络】Socket编程:TCP网络编程
linux·网络·网络编程·tcp
夕泠爱吃糖5 小时前
TCP中的拥塞控制
网络·tcp/ip·智能路由器·拥塞控制
Miki Makimura5 小时前
UDP可靠性传输指南:从基础机制到KCP协议核心解析
网络·网络协议·学习·udp
不会c嘎嘎5 小时前
Linux -- 网络层
linux·运维·网络
黄沐阳6 小时前
网络产品报价指南--S5735系列交换机
运维·服务器·网络·智能路由器