-
理解 HTTP 协定
- http 传输协定是前后端交互的一种形式,示意前端以怎么的模式发送数据给后端,后端以怎么的模式返回数据给前端
- 传输协定中必须经验 建设连贯 –> 前端发送申请给后端 –> 后端返回响应给前端 –> 断开连接
- 只能由前端被动发动,后端不能被动沟通前端
- 一次连贯只能沟通一件事,所以对一件事尽可能详细描述
- 前后端进行交互时只能应用字符串格局,不能应用其余格局的数据类型,中文会主动转换为 url 编码
-
传输协定传输过程
-
建设连贯(基于 TCP/IP 协定的三次握手)
建设连贯的目标是保障浏览器与服务器之间进行通道的连贯过程: 前端询问后端状态,后端回应前端,前端回应后端的回应,前端与后端确认失常连贯,前端发送申请给后端
-
前端发送申请(以申请报文模式进行发送)
申请报文是一个非凡格局的字符串文件(由浏览器进行组装)
申请行的参数阐明:-
申请形式
HTTP 1.0 的申请形式:- GET 偏差于获取的形式(大部分都是给后端一些参数,用来获取一系列数据)
- POST 偏差于给服务器一些数据(大部分都是登录,给服务器一些信息,而后返回一个简略的后果)
- PUT 偏差于给服务器一些信息,增加数据(大部分用于注册,给服务器发送一些信息进行存储)
- HEAD 用于获取服务器头信息
HTTP 1.1 的申请形式:
- DELDTE 偏差于删除信息(大部分时删除评论等)
- CONNECT 管道连贯扭转代理连贯应用
- PATCH 偏差于给服务器一些信息进行批改信息(大部分用于欠缺用户材料)
- OPTIONS 获取服务器性能,然而须要服务器批准
- ./login.php 示意申请地址
- HTTP/1.1 示意传输协定版本
申请头(对本次申请的形容信息)
- Host 示意申请的主机
- Accapt 示意须要的数据类型
- User Agent 示意申请的终端
- Cookie
- Content-type 示意申请体的数据格式
申请空行(分隔申请体和申请头)
申请体(前端携带给后端的参数;GET 申请没有) -
- 后端接管申请并返回响应(以响应报文模式发送)
-
状态行:
- 响应状态码
- 100 ~ 199 示意连贯持续
101 状态码示意连贯持续
- 200 ~ 299 示意各种意义上的胜利
200 状态码示意通用胜利 - 300 ~ 399 示意重定向
301 状态码示意永恒重定向(本次申请永恒拜访这个地址,从新切换为新的地址)
302 状态码示意长期重定向(本次申请长期应用 服务器 来决定浏览器跳转页面) - 400 ~ 499 示意客户端谬误
403 状态码示意拜访权限不够
404 状态码示意拜访地址不存在 - 500 ~ 599 示意服务端谬误
500 状态码示意通用服务端谬误
501 状态码示意服务器保护或过载
- 对响应状态码的简略形容
- 传输协定的版本
-
响应行:
- 对本次响应的形容信息
- Date 示意服务器工夫(世界规范工夫)
- Server 示意服务器信息
- Content-Type 示意响应体的数据格式
- ···
- 响应体(后端给前端的数据)
- 断开连接(基于 TCP/IP 协定的四次挥手)
保障浏览器与服务器之间通道的断开
过程:前端收到响应报文,向后端发送断开报文,后端接管到断开报文并发送断开报文,前端接管到后端的断开报文并发送断开信息,后端无回应,断开来连贯
-
-
GET 和 POST 申请形式的区别
- GET 语义上是获取信息,GET 携带参数的形式时 queryString,信息在地址栏前面间接拼接,不在申请体中,GET 实践上携带数据有限,然而浏览器地址栏无限,IE 为 2KB,GET 会被浏览器被动缓存,GET 明文发送
- POST 语义上是提交信息,POST 携带参数是 requestBody,信息在地址栏没有,而是在申请体中,POST 实践上携带数据有限,然而会被服务器端限度,POST 申请不会被浏览器被动缓存,POST 暗文发送,POST 的数据格式须要与申请头内的 content-type 内的格局相匹配
-
理解 Cookie(客户端的本地存储空间,用于存储一些数据)
特点:
- Cookie 依照域名进行存储(只能拜访以后域名)
- Cookie 依照文件门路存储(子级能够拜访父级门路内容,父级不能拜访子级内容)
- Cookie 贮存时依照字符串的模式进行存储
('key=value')
- Cookie 的存储空间为 4KB 或 50 条数据
- Cookie 时效性,默认为会话级别生效,敞开浏览器后就没有了,可进行手动进行设置
- Cookie 前后端均可操作
- 申请时主动携带数据
-
操作 cookie 语法
应用 JS 进行操作
// 获取数据 let cook = document.cookie // 设置或批改数据 document.cookie = 'key = value;expires=' + new Date() + ';path=/' /* key = value 设置值 expires='+ new Date() +' 对 Cookie 设置时效性性 path=/ 设置存储门路 存储的数据会主动转换为字符串格局,个别只存储一些简略的数据 */ // 删除一条数据 document.cookie = 'key = value;expires=-1'
应用 PHP 进行操作
// 获取数据(PHP 自带一个关联型数组)$cook = $_COOKIE; $cook = $_COOKIE['key'];// 拜访一个指定数据 // 设置或批改 setcookie(key,value,expires,path);
-
理解 session(服务器端的一个存储空间)
特点:开启 session 时,会主动生成一个“明码”,这个“明码”一半会主动存储到 cookie 中,当数据返回给前端时会主动把这个“明码”带回去,并且 cookie 中存在一个 session_id
-
设置 session 的语法
// 设置 session 对应的 cookie 的时效性 session_set_cookie_params(时效时长,session_name(),session_id()); // 参数一:单位为秒,设置多长时间过期 // 参数二:设置 session 的 key // 参数三 session 的 value // 设置时效性的办法必须写在 session_start() 之前 // 开启 session 空间 session_start(); // 设置 session $_SESSION['key']= value;