这是我参与「第四届青训营 」笔记创作活动的第1天
HTTP协议简介
概述:超文本传输协议,
- 一个位于计算机网络中应用层的协议,基于tcp
- 请求,响应:客户端主动请求,服务器被动响应。
- 简单可扩展:易于自义定head
- 无状态:连接不具有记忆性,相互孤立,不相互影响
http版本发展
-
http0.9
只有get方法,响应只有html文件,最原始的http
-
http1.0 TCP连接不可复用,有了状态码,支持多种响应文档
-
http1.1 实现长连接,即TCP连接默认不关闭,允许被多个请求复用,引入缓存机制,请求头新增host字段,用来处理服务器存在多个虚拟主机的情况。内容协商。
-
http2.0 头部压缩,二进制传输,服务器推送
HTTP协议的基本结构与发展历程
常见http方法
get(获取) post(增) put(修改) delete(删除)
其他方法一般开发者用不到
http方法的性质
安全性:请求不会服务器数据产生修改,只读
幂等性:多次相同的请求对服务器来说结果都是一样,post就不是,每次请求服务器都会创建数据
状态码
服务器告诉客户端请求的结果状态码
1** 请求已接受,继续处理
2** 成功,开发人员最喜欢的状态码
3** 重定向,资源的获取需要进行进一步的操作
4** 客户端出错导致请求失败 请求参数不正确,url不正确等错误
5** 服务器出错导致请求失败
restful api
一种api设计风格规划,
- 每种url抽象表达一种资源
- 对资源的操作方式(curd)由请求方法表述
缓存策略
强缓存:浏览器遇到强缓存url将直接使用缓存 cache-control响应头控制 expires旧了 较少使用
协商缓存: 会先问服务器缓存是否可用
HTTP协议的基本结构与发展历程
常见场景中的HTTP协议应用
在不同的环境中发起HTTP请求
知识扩展,了解更多网络通信协议
cookie
使用场景
跨域
一般使用cors(设置请求头使跨域请求合法化)或者代理服务器(反向代理)解决
登录
jwt:用户登录后生成token,存在在cookie或者localstorage中 ,请求时放入请求头中