读一遍真实的请求和真实的响应,弄明白 200、404 和 500 到底是什么意思。
在 Kodokon 中打开本课HTTP(HyperText Transfer Protocol,超文本传输协议)是浏览器和服务器之间对话所用的语言。好消息是:它不是让人看不懂的二进制,而是可读的文本。一个请求几行就写完了:一个动词、一个地址,然后是一些头部,用来补充上下文(我偏好哪种语言、我用的是哪个浏览器)。响应也是同样的结构:一个数字代码、一些头部、一个空行,然后才是内容。
curl -i https://example.com
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400
<!doctype html>
<html>
...请求开头的那个动词叫做方法,它宣告了你的意图。GET 只是请求读取一个资源:你每打开一个页面,浏览器做的就是这件事。POST 向服务器发送数据,典型的场景就是你提交一个注册表单。PUT 更新一个已经存在的条目,DELETE 则请求把它删掉。重点记住前面两个:绝大部分流量都是它们贡献的。
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/post每个响应都以一个三位数的状态码开头。光看第一位数字就能明白当前的状况。2xx 这一族表示成功:200 的意思是“这就是你要的东西”。3xx 是重定向:301 的意思是“这个页面搬家了,去那边找”。4xx 指向客户端这一侧的错误:404(找不到资源)、403(禁止访问)、401(你得先登录)。5xx 指向服务器这一侧的故障:500 就是最经典的内部错误。
curl -I https://example.com/this-page-does-not-exist
HTTP/2 404
content-type: text/html; charset=UTF-8