目录
(一)HTTP是什么
(二)报文格式
(1)请求
①首行
1.URL
2.方法(method)
Ⅰ.GET
Ⅱ.POST
Ⅲ.PUT
Ⅳ.DELETE
3.版本号
②请求头(header)
1.键值对
Ⅰ.Host
Ⅱ.Content-Length
Ⅲ.Content-type
Ⅳ.User-Agent
Ⅴ.Referer
③空行(请求头结束的标志)
④请求正文(body)(有的有,有的没有)
(2)响应
①首行(状态行)
1.版本号
2.状态码
200 OK
301 Moved Permanently
302 Move Temporarily
403 Forbidden
404 Not Found
418
500 Internal Server
502 Bad Gateway
504 Gateway Timeout
②响应头(header)
③空行(响应报头结束的标志)
④正文(body)
(一)HTTP是什么
即“超文本传输协议”。
(二)报文格式
(1)请求
①首行
唯一资源定位符,描述了网络上的某个资源的具体位置。
1.URL
URL encode:URL的 query string 中的 value 部分,可能需要进行转义。
2.方法(method)
Ⅰ.GET
-
HTTP中最常见方法,GET请求一般没有body。
-
实现幂等,就可实现缓存。
-
官方建议实现“幂等性”。
Ⅱ.POST
-
特点:有body用来传输数据。
-
base64编码:通过这个把二进制内容转文本,从而减轻服务器负担。
-
触及场景:登录,上传资源、文件。
Ⅲ.PUT
与POST相似,具有幂等性。
Ⅳ.DELETE
3.版本号
Restful 风格的API设计。
②请求头(header)
1.键值对
-
-
键和值之间用“: ”来分割。
-
标准规定的。
-
Ⅰ.Host
访问的服务器和端口。
Ⅱ.Content-Length
-
描述了body的长度。
-
解决了“粘包问题”。
Ⅲ.Content-type
-
描述了body的数据格式。
-
常见格式:
-
text/html
-
text/css
-
application/javascript
-
application/json
-
image/png
-
image/jpg
-
Ⅳ.User-Agent
所使用设备。
>>>响应式编程
Ⅴ.Referer
记录上一个页面。
Ⅵ.Cookie
-
键值对。
-
浏览器在本地存储数据的一种机制。
-
应用场景:
-
保存没那么重要,但是有用的数据(也可以使用LacalStorage、IndexDB实现本地存储)
-
流量标签
-
保存用户的身份标识
-
>>>Cookie和会话(存储用户的详细信息)配合使用
③空行(请求头结束的标志)
④请求正文(body)(有的有,有的没有)
(2)响应
①首行(状态行)
1.版本号
2.状态码
-
200 OK
HTTP层面的成功,不代表业务层面的成功。
-
301 Moved Permanently
永久重定向。
-
302 Move Temporarily
临时重定向。
3开头的响应一般不会有body,但是会有location,表示接下来跳转到的页面
-
403 Forbidden
访问被拒绝(没有权限)。
-
404 Not Found
客户端访问的资源不存在。
-
418
I am a teapot
-
500 Internal Server
服务器抛出异常。
-
502 Bad Gateway
网关后面的服务器故障。
-
504 Gateway Timeout
服务器响应时间过长。