HTTP与Ajax

103 阅读1分钟

前后端数据交互

1-1 初识前后端通信

<script>
    // 1 前后端通信是什么
    // 前端和后端数据交互的过程
    // 浏览器和服务器之间数据交互的过程

    // 2 后端向前端发送数据
    // 访问页面

    // 3 前端向后端发送数据
    // 用户注册
        
</script>

1-2 前后端通信的过程与概念解释

<script>
    // 1 前后端通信的过程
    // 浏览器向服务器发送请求数据 服务器返回浏览器响应数据
    // 前后端的通信是再 '请求-响应' 中完成的

    // 2 概念解释
    // 前端 : 浏览器端
    // 客户端 : 只要能和服务器通信的就叫客户端
    // 命令行工具
    // curl https:www.........

    // 后端 : 服务器端
    // 
</script>

1-3 前后端的通信方式

<script>
    // 1 使用浏览器访问页面
    // 再浏览器地址栏输入网址 按下回车

    // 2 HTML 的标签
    // 浏览器再解析 HTML 标签的时候 遇到一些特殊的标签 会再次向服务器发送请求
    // link/img/script/iframe
    // 假装有css js img  // 懒得写

    // 还有一些标签 浏览器解析的时候 不会像服务器发送请求 但是用户可以使用它们像服务器发送请求
    // a/form

    // 3 Ajax 和 Fetch
</script>

HTTP协议

2-1 初识HTTP

<script>
    // 1 HTTP 是什么
    // Hyper Text Transfer Protocol
    // 超文本传输协议
    // HTML : 超文本标记语言

    // 超文本 : 原先一个个单一的文本通过超链接将其联系起来 由原先的单一的文本变成了可无限延伸 扩展的超级文本 立体文本 

    // HTML JS CSS 图片 字体 音频 视频 等等文件 都是通过 HTTP (超文本传输协议) 再服务器和浏览器之间传输

    // 每一次前后端通信 前端需要主动向后端发出请求 后端接收到前端的请求后 可以给出响应
    // HTTP 是一个请求-响应协议

    // 2 HTTP 请求响应的过程
    // https://www............
</script>

2-2 HTTP报文

<script>
    // 1 HTTP 报文是什么
    // 浏览器向服务器发送请求时 请求本身激素信息 叫请求报文
    // 服务器向浏览器发送响应时传输的信息 叫响应报文


    // 2 HTTP 报文格式
    // 请求
    // 请求头 : 起始行 + 首部
    // 请求体

    // GET 请求 : 没有请求体 数据通过请求头携带
    // POST 请求 : 有请求体 数据通过请求体携带

    // 响应 
    // 响应头  : 起始行 + 首部
    // 响应体
</script>

2-3 HTTP方法

<script>
     // 1 常用的 HTTP 方法
     // 浏览器发送请求时采用的方法 和响应无关

     // GET POST PUT DELETE

     // 用来定义对于资源采取什么样的操作的 有各自的语义

     // 2 HTTP 方法的语义
     // GET 获取数据
     // 获取资源 (文件)

     // POST 创建数据
     // 注册

     // PUT 更新数据
     // 修改个人信息 修改密码

     // DELETE 删除数据
     // 删除一条评论

     // 增删改查

     // 这些方法虽然有各自的语义 但是不是强制性的

     // 3 RESTful 接口设计
     // 一种接口设计风格 充分利用 HTTP 方法的语义

     // 通过用户 ID 获取个人信息 使用 GET 方法
     // https://www.imooc/api/http/getUser?id=1

     // 注册新用户 使用 POST 方法
     // https://www.imooc/api/http/addUser

     // 修改一个用户 使用 PUT 方法
     //  https://www.imooc/api/http/modifyUser

     // 删除一个用户 使用 DELETE 方法
     //  https://www.imooc/api/http/deleteUser
 </script>

2-4 GET和POST方法的对比

<script>
   // 1 语义
   // GET : 获取数据
   // POST : 创建数据

   // 2 发送数据
   // GET : 通过地址在请求头中携带数据
   // 能携带的数据和地址的长度有关系 一般最多就几K

   // POST 既可以通过地址在请求头中携带数据 也可以通过请求体携带数据
   // 能携带的数据量理论上是无限的

   // 携带少量数据 可以使用 GET 请求 大量的数据可以使用 POST 请求

   // 3 缓存
   // GET 可以被缓存  POST 不会被缓存

   // 4 安全性
   // ?username = alex
   // GET 和 POST 都不安全

   // 发送密码或其他敏感信息时不要使用 GET 主要是避免之间被他人窥屏或通过历史记录找到你的密码
       
</script>

2-5、HTTP状态码

<script>
    // 1 HTTP 状态码是什么
    // 定义服务器对请求的处理结果 是服务器返回的 

    // 2 HTTP 状态码的语义
    // 100~199消息 : 代表请求已被接受 需要继续处理
    // websocket
        
    // 200~299 成功
    // 200

    // 300~399 重定向
    // http://www.imooc.com
    // https://www.imooc.com

    // 301 Moved Permanently
    // 302 Move Temporarily

    // 304 Not Midified

    // 400~499 请求错误
    // 400 Bad Request
    // 404 Not Found

    // 500~599 服务器错误
    // 500 Internal Server Error
</script>

Cookie

3-1 初识Cookie

<script>
    // 1 Cookie 是什么
    // Cookie 全称 HTTP Cookie 简称 Cookie
    // 是浏览器储存数据的一种方式
    // 因为存储在用户本地 而不是存储在服务器上 是本地存储
    // 一般会自动随着浏览器每次请求发送到服务器端

    // 2 Cookie 有什么用
    // 利用 Cookie 跟踪统计用户访问该网站的习惯 风闻了哪些页面 在每个网页的停留时间等

    // 3 在浏览器中操作 Cookie
        
</script> 

3-2 Cookie的基本用法

<script>
    // 1 写入 Cookie
    // document.cookie = 'username = zs'
    // document.cookie = 'age = 18'

    // 不能一起设置 只能一个一个设置
    // document.cookie = 'username = zs ; age = 18'

    // 2 读取 Cookie
    // console.log(document.cookie)

    // 读取的是一个由名值对构成的字符串 每个值对之间由";"(一个分号一个空格)隔开
</script>

3-3、Cookie的属性1

<script>
    // 1 Cookie 的名称 (Name) 和值 (Value)
    // 最重要的两个属性 创建Cookie时必须填写 其它属性可以使用默认值

    // Cookie 的名称或值如果包含非英文字母 则写入时需要使用 encodeURLComponent() 编码 读取时使用 decodeURLComponent() 编码
    // document.cookie = 'username = alex'

    // document.cookie = `username = $(encodeURLComponent('张三'))`
    // dpcument.cookie = `${encodeURIComponent('用户名')} = ${encodeURIComponent('张三')}`

    // 一般名称使用英文字母 不要用中文 值可以用中文 但是要编码

    // 2 失效 (到期) 时间
    // 对于失效的 Cookie 会被浏览器删除
    // 如果没有设置失效 (到期) 时间 这压根的 Cookie 成为会话 Cookie
    // 它存在内存中 当会话结束 也就是浏览器关闭时  Cookie 消失

    // document.cookie = 'username =  alex'
        
    // 想长时间存在 设置 Expires 或 Max-Age
    // document.cookie = `username = alex ; expires = ${new Date('2100-1-01 00:00:00')}`

    // max-age
    // 值为数字 表示当前时间 + 多少秒后过期 单位是秒
    // document.cookie = 'username =  alex ; max-age = ${24 * 3600 * 30}'

    // 如果 max-age 的值是0或负数 则Cookie会被删除
    // document.cookie = 'username =  alex'
    // document.cookie = 'username =  alex ; max-age = 0'
    // document.cookie = 'username =  alex ; max-age = -1'
</script>

3-4 Cookie的属性2

<script>
    // 3 Domain 域
    // Domain 限定了访问 Cookie 的范围

    // 使用 JS 只能读写当前域或父域的 Cookie 无法读写其他域的 Cookie
    // document.cookie = 'username = alex ; domain = www.imooc.com'

    // www.imooc.com m.imooc.com 当前域
    // 父域 : .imooc.com

    // 4 Path 路径
    // Path 限定了访问 Cookie 的范围 (同一个域名下)
    // document.cookie = 'username = alex ; path = course/list'
    // document.cookie = 'username = alex ; path = /1.Cookie/'
    
</script>

3-5 Cookie的属性3

<script>
    // 5 HttpOnly
    // 设置了 HttpOnly 属性的 Cookie 不能通过 JS 去访问

    // 6 secure 安全标志
    // secure 限定了只要在使用了 https 而不是 http 的情况下才可以发送给服务端

    // Domain Path Secure 都要满足条件 还不能过期的 Cookie 才能随着请求发送到服务器
</script>