这是我参与「第四届青训营」笔记创作活动的第12天,学习内容为《HTTP实用指南》
1、HTTP简介
HTTP 超文本协议,可以承载html css js等
每个http协议都分为响应和请求两部分
http头部可以自定义,只要客户端与服务端沟通好就行
无状态 不知道你之前做过什么事情
由于是可扩展的,就会人为的带上一些信息
2、协议分析
HTTP
0.9 太单调了
1.0 支持多种文档,状态码
1.1 基于tcp。所以搞了链接复用,97-到目前为止
15年推出2.0 但是现在随着大家对用户体验的更高,所以推出2.0
3、请求方法
| 1 | GET | 请求指定的页面信息,并返回实体主体。 |
|---|---|---|
| 2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
| 3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
| 4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
| 5 | DELETE | 请求服务器删除指定的页面。 |
| 6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
| 7 | OPTIONS | 允许客户端查看服务器的性能。 |
| 8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
| 9 | PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
4、状态码
1开头:我们接受请求需要及时处理
2:成功
3:重定向 进一步操作
4:客户端错误,携带信息错误
5:服务器错误
5、RESTful 表现层转化 设计风格
一种API设计风格 1)每一种URI代表一种资源。 2)客户端与服务层之间传递这种资源的某种表现层。 3)客户端通过HTTP method,对服务器的资源进行操作,实现表现层状态转化。
6、请求头
Accpet:
Content-Type : 表单,可以用Form data也可以用JSON格式去传递
主要你在Conttentype对应就好
User-Agent:你是从安卓设备还是客户端发送,有些字段表明
Set-cookie: 设置cookie以及他们对应的权限
Access;访问控制
7、强/协商缓存
强缓存:本地有了就用
协商缓存:要去比较一下,看是否能用,是否是最新的
Server会验证一下是不是Etag是否是最新的,如果是最新的,就会发一个304,如果不是,就会发一个200,并且更新缓存
8、HTTP1.0 VS HTTP2.0
HTTP1.0
tcp连接
如果同一个客户,每次请求,每次都要建立连接,消耗比较大
HTTP 2.0
1、相同目标地址的时候,不用重新连接。
2、阻止服务器发送东西:比如一个长视频,暂停了,就不要继续加载了,而是去处理其他事情。
3、服务器推送:服务器知道有些东西你会需要的,就主动进行推送,但是都需要浏览器的支持。