一、前后端数据交互
1-1. 初识前后端通信
1. 前后端通信是什么
前端和后端数据交互的过程
浏览器和服务器之间数据交互的过程
2. 后端向前端发送数据
访问页面
3. 前端向后端发送数据
用户注册
1-2. 前后端通信的过程与概念解释
1. 前后端通信的过程
前后端的通信是在'请求-响应'中完成的
2. 概念解释
前端:浏览器端
客户端:只要能和服务器通信的就叫客户端
命令行工具
curl https:www.imooc.com
后端:服务器端
1-3. 前后端的通信
1. 使用浏览器访问网页
在浏览器地址栏输入网址,按下回车
2.HTML的标签
浏览器在解析HTML标签的时候,遇到一些特殊的标签,会再次向服务器发起请求
link/img/script/iframe
还有一些标签,浏览器解析的时候,不会向服务器发送请求,但是用户可以使用他们向服务器发送请求
a/form
3. Ajax和Fetch
二、HTTP协议
2-1. 初识HTTP
1.HTTP是什么
HyperText Transfer Protocol
超文本传输协议
超文本:原本一个个单一的文本,通过超链接将其联系起来。由原先的单一的文本变成了可无限延伸、扩展的超级文本、立体文本
HTML、JS、CSS、图片、字体、音频、视频等等文件,都是通过HTTP(超文本传输协议)在服务器和浏览器之间传输
每一次前后端通信,前端需要主动向后端发出请求,后端接收到前端的请求后,可以给出响应
HTTP是一个请求-响应协议
2. HTTP请求响应的过程
2-2 HTTP报文
1. HTTP报文是什么
浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
服务器向浏览器发送响应时传输的信息,叫响应报文
2. HTTP报文格式
请求
请求头:起始行+首部
请求体
GET请求,没有请求体,数据通过请求头携带
POST请求,有请求体,数据通过请求体携带
响应
响应头:起始行+首部
响应体
2-3 HTTP方法
1. 常用的HTTP方法
浏览器发送请求时采用的方法,和响应无关
GET、POST、DELETE
用来定义对于资源采取什么样的操作的,有各自的语义
2. HTTP方法的语义
GET获取数据
获取资源(文件)
POST创建数据
注册
PUT更新数据
修改个人信息,修改密码
DELETE删除数据
删除一条评论
增删改查
这些方法虽然有各自的语义,但是并不是强制性的
3. RESTful接口设计
一种接口设计风格,充分利用HTTP方法的语义
通过用户ID获取个人信息,使用GET方法
www.imooc.com/api/http/ge…
- GET(RESTful接口设计)
www.imooc.com/api/http/us…
注册新用户,使用POST方法
www.imooc.com/api/http/ad…
- POST(RESTful接口设计)
www.imooc.com/api/http/us…
修改一个用户,使用POST方法
www.imooc.com/api/http/mo…
- PUT(RESTful接口设计)
www.imooc.com/api/http/us…
删除一个用户,使用POST方法
www.imooc.com/api/http/de…
- DELETE(RESTful接口设计)
www.imooc.com/api/http/us…
2-4 GET和POST方法的对比
1. 语义
GET:获取数据
POST:创建数据
2. 发送数据
GET通过地址在请求头中携带数据
能携带的数据量和地址的长度有关系,一般最多就几k
POST既可以通过地址在请求头中携带数据,也可以通过请求体携带数据
能携带的数据量理论上是无限的
携带少量数据,可以使用GET请求,大量的数据也可以使用POST请求
3. 缓存
GET可以被缓存,POST不会被缓存
4. 安全性
GET和POST都不安全
发送密码或其他敏感信息时不要使用GET。主要是避免直接被他人窥屏或通过历史记录找到你的密码
2-5 HTTP状态码
1. HTTP状态码是什么
定义服务器对请求的处理结果,是服务器返回的
2、HTTP状态码的语义
-
100~199 消息:代表请求已被接受,需要继续处理
websocket -
200~299 成功
200 -
300~399 重定向
www.imooc.com/
www.imooc.com/
301 Moved Permanently(永久性跳转)
302 Move Temporarily(临时性跳转)
304 Not Modified -
400~499 请求错误
400 Not Found -
500~599 服务器错误
500 Internal Server Error
三、Cookie
3-1 初识Cookie
1. Cookie是什么
Cookie全称HTTP Cookie,简称Cookie
是浏览器存储数据的一种方式
因为存储在用户本地,而不是存储在服务器上,是本地存储
一般会自动随着浏览器每次请求发送到服务器端
2. Cookie有什么用
利用Cookie跟踪统计用户访问该网站的习惯,比如什么时间访问,访问了哪些页面,在每个页面的停留时间等
3.在浏览器中操作Cookie
不要在Cookie中保存密码等敏感信息
3-2 Cookie的基本用法
1. 写入Cookie
document.cookie = 'username=zs';
document.cookie = 'username=age=18';
//不能一起设置,只能一个一个设置
//document.cookie = 'username=zs;age=18';
2. 读取Cookie
console.log(document.cookie);
//读取的是一个由名值对构成的字符串,每个名值对之间由";"(一个分号和一个空格)隔开
// username=zs;age=18
3-3 Cookie的属性1
1. Cookie的名称(Name)和值(Value)
最重要的两个属性,创建Cookie时必须填写,其他属性可以使用默认值
Cookie的名称或值如果包含非英文字母,则写入时需要使用encodeURIComponent()编码,读取时使用decodeURIComponent()编码
document.cookie = 'username=alex';
document.cookie = 'username=alex'
document.cookie = `username=${encodeURIComponent('张三')}`;
document.cookie = `${encodeURIComponent('用户名')}=${encodeURIComponent('张三')}`;
//一般名称使用英文字母,不要使用中文,值可以用中文,但是要编码
2. 失效(到期)时间
对于失效的Cookie,会被浏览器清除
如果没有设置失效(到期)时间,这样的Cookie称为会话Cookie
它存在内存中,当会话结束,也就是浏览器关闭时,Cookie消失
document.cookie = 'username=alex';
//想长时间存在,设置 Expires 或 Max-Age
//Date()
document.cookie = `username=alex;expires=${new Date('2100-1-01 00:00:00')}`;
//max-age
//值为数字,表示当前时间+多少秒后过期,单位是秒
// document.cookie = 'username=alex;max-age=5'
document.cookie = `username=alex;max-age=${24 * 3600 *30}`
//如果max-age的值是0或负数,则Cookie会被删除