状态码
请求与响应
参考菜鸟教程资料
什么是HTTPS
Server + Client + HTTP
- 浏览器负责发起请求
- 服务器在 80 端口接收请求
- 服务器负责返回内容(响应)
- 浏览器负责下载响应内容
HTTP 的作用就是指导浏览器和服务器如何进行沟通。
资料:菜鸟教程 - 学习HTTP
重点 面试题
- 请求包括 GET(获取) POST(上传) PUT(整体更新) PATCH(局部更新) DELETE(删除) HEAD OPTIONS等
- 能够手写http请求,能够手写http响应
- Content-Type: application/x-www-form-urlencoded : 应用数据/还没有写入规范的格式-万维网-表单-用urlencode形式压缩
- 知道状态码的含义:123456789101112200 OK:GET时返回,表示响应成功201 created:POST时返回,表示创建成功301 Moved Permanently:请求的资源已被永久的移动到新URI302 Found:请求的资源被临时移走了304 未修改Not Modified:所请求的资源未修改,使用缓存的文档404 Not Found :无法找到这个网页403 Forbidden :服务器拒绝执行此请求500 Internal Server Error:服务器内部错误,无法完成请求502 Bad Gateway :充当网关或代理的服务器,从远端服务器接收到了一个无效的请求(比如服务器关了)
HTTP请求
发起GET请求
- 命令行执行
curl -s -v -- "https://www.baidu.com"
请求内容为:1234GET / HTTP/1.1Host: www.baidu.comUser-Agent: curl/7.54.0Accept: */*
发起POST请求
- 命令行执行
curl -X POST -s -v -- "https://www.baidu.com"
请求内容为:1234POST / HTTP/1.1Host: www.baidu.comUser-Agent: curl/7.54.0Accept: */*
发起带data的POST请求
- 命令行执行
curl -X POST -d "1234567890" -s -v -- "https://www.baidu.com"
请求内容为:12345678POST / HTTP/1.1Host: www.baidu.comUser-Agent: curl/7.54.0Accept: */*Content-Length: 10Content-Type: application/x-www-form-urlencoded1234567890
请求的格式
|
|
- 请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)
- 第三部分永远都是一个回车(
\n
,作为第2部分与第4部分的分界线 - 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
- 这里的路径可以包括「查询参数」,但不包括「锚点」比如
GET /s?wd=javascript HTTP/1.1
- 如果你没有写路径,那么路径默认为 / :
GET / HTTP/1.1
- 第 2 部分中的 Content-Type 标注了第 4 部分的格式
用 Chrome 发请求
- 打开 Network
- 地址栏输入网址
- 在 Network 点击,查看Headers里的 Request Headers,点击「view source」就可以看到请求内容
- 如果是POST请求,要点
Preserve log
防止刷新页面后丢失,此时就有第四部分,那么在 FormData 或 Payload 里面可以看到
响应
上面三个请求示例,前两个请求对应的响应分别为
对GET的响应
用GET请求百度首页后的响应:
对POST的响应
用POST请求百度首页后的响应:
- GET 请求和 POST 请求对应的响应可以一样,也可以不一样
- 响应的第四部分可以很长很长很长
响应的格式
|
|
状态码要背,是服务器对浏览器说的话
123451xx 不常用2xx 表示成功3xx 表示重定向4xx 表示你丫错了(客户端错误)5xx 表示好吧,我错了(服务端错误)状态解释没什么用
- 第 2 部分中的 Content-Type 标注了第 4 部分的格式
- 第 2 部分中的 Content-Type 遵循 MIME 规范
用 Chrome 查看响应
- 打开 Network
- 输入网址
- 选择Headers
- 查看 Response Headers,点击「view source」
- 你会看到响应的前两部分
- 查看 Response 或者 Preview,你会看到响应的第 4 部分
总结
http请求与响应的格式
|
|
比喻版
|
|
https
HTTP缺点:通信不加密内容会被窃听
不验证通信方的身份,遭遇伪装
无法证明报名完整性,可能回被篡改
所以引入HTTPS
HTTP+加密+认证+完整性保护=HTTPS