HTTP实用指南 | 青训营笔记

82 阅读3分钟

这是我参与「第四届青训营」笔记创作活动的第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、请求方法

1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS允许客户端查看服务器的性能。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH是对 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、服务器推送:服务器知道有些东西你会需要的,就主动进行推送,但是都需要浏览器的支持。