交互方式和JSON

一、交互方式

1. cookie

Cookie是服务器保存在客户端中的一小段数据信息。使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置。

客户端将数据存储在cookie中,cookie会放在请求头中随着HTTP请求发送给服务端,由服务端解析数据。同样服务端可以产生cookie,发送给客户端,客户端接收到cookie后保存在本地。

2. session

  • session 是另一种记录服务器和客户端会话状态的机制
  • session 是基于 cookie 实现的,session 存储在服务器端,sessionId 会被存储到客户端的cookie 中

session 认证流程:

  1. 用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session
  2. 请求返回时将此 Session 的唯一标识 SessionID 返回给浏览器
  3. 浏览器接收到服务器返回的 SessionID 后,会将此信息存入到 Cookie 中,同时 Cookie 记录此 SessionID 属于哪个域名
  4. 当用户第二次访问服务器的时候,请求会自动把此域名下的 Cookie 信息也发送给服务端,服务端会从 Cookie 中获取 SessionID,再根据 SessionID 查找对应的 Session 信息,如果没有找到说明用户没有登录或者登录失效,如果找到 Session 证明用户已经登录可执行后面操作。

 3. token

Token 是访问接口(API)时所需要的资源凭证。

简单 token 的组成:

uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token 的前几位以哈希算法压缩成的一定长度的十六进制字符串)

特点:

  • 服务端无状态化、可扩展性好
  • 支持移动端设备
  • 安全
  • token 完全由应用管理,所以它可以避开同源策略
1. access token

Access Token 的身份验证流程:

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 token 并把这个 token 发送给客户端
  4. 客户端收到 token 以后,会把它存储起来,比如放在 localStorage 里
  5. 客户端每次发起请求的时候需要把 token 放到请求的 Header 里传给服务端
  6. 服务端收到请求,然后去验证客户端请求里面带着的 token ,如果验证成功,就向客户端返回请求的数据
2. Refresh Token


refresh token 是专用于刷新 access token 的 token。

如果没有 refresh token,也可以刷新 access token,但每次刷新都要用户输入登录用户名与密码,会很麻烦。有了 refresh token,可以减少这个麻烦,客户端直接用 refresh token 去更新 access token,无需用户进行额外的操作。

 

Access Token 的有效期比较短,当 Acesss Token 由于过期而失效时,使用 Refresh Token 就可以获取到新的 Token,如果 Refresh Token 也失效了,用户就只能重新登录了。

4. 表单

form 是 HTML 中的一个表单标签,可以用于给服务器发送 GET 或者 POST 请求。

form 的重要参数:

  • action:用来构造 HTTP 请求的 URL 是什么
  • method:用来构造 HTTP 请求的方法(form 只支持 GET 或 POST 方法)

input 的重要参数在 form 标签中的含义:

  • type:表示输入框的类型(text 表示文本、password 表示密码、submit 表示提交按钮)
  • name:表示构造出的 HTTP 请求的 query string 的 key
  • value:表示 input 标签的值(对于 type 为 submit 类型来说,value 就对应了按钮上显示的文本)
  • input 标签的内容:表示 query string 的 value

当我们用 form 表单构造好了 HTTP 请求,点击 submit 提交按钮,就可以将请求发送出去

4.1 get请求
<form action="http://aaaaa/myPath" method="get">
    <input type="text" name="username">
    <input type="text" name="password">
    <input type="submit" name="提交">
</form>

 

 4.2 发送 POST 请求
<form action="http://aaaaa/myPath" method="post">
    <input type="text" name="username">
    <input type="text" name="password">
    <input type="submit" name="提交">
</form>

 

5. jsonp

 一种非官方跨域数据交互协议,利用具有src属性标签不受跨域限制的特性,通过动态创建script标签来从服务器端引入js代码,从而获得服务器传来的数据,只能是get方法。

6. websocket

 浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

7. ajax

 AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步提交。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

同步提交:当用户发送请求时,当前页面不可以使用,服务器响应页面到客户端,响应完成,用户才可以使用页面。

异步提交:当用户发送请求时,当前页面还可以继续使用,当异步请求的数据响应给页面,页面把数据显示出来

AJAX相当于是在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给 Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。
 

二、JSON

2.1 什么是json

  • JSON,全称是 JavaScript Object Notation,即 JavaScript对象标记法。
  • JSON是一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-Readable)格式。
  • JSON 的名称中虽然带有JavaScript,但这是指其语法规则是参考JavaScript对象的,而不是指只能用于JavaScript 语言。

2.2 json的语法规则

  • 数组(Array)用方括号(“[]”)表示。
  • 对象(0bject)用大括号(“{}”)表示。
  • 名称/值对(name/value)组合成数组和对象。
  • 名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组
  • 并列的数据之间用逗号(“,”)分隔
{
    "id": 1,
    "name": "ran",
    "age": 18,
    "isLogin": true,
    "vip": null,
    "haslearn": [{
            "classname": "c语言",
            "teacher": "feng"
        },
        {
            "classname": "高数",
            "teacher": "sun"
        }
    ]
}

2.3 JSON的解析和生成(JSON 和 JS 对象互转)

  1. 要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:
    <script>
        var str = '{"name": "123","password":"000000"}';
        var obj = JSON.parse(str);
        console.log(obj);
    </script>

 

2. 要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法

   <script>
        var str = {"name": '123',"password":'000000'};
        var obj = JSON.stringify(str);
        console.log(obj);
    </script>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JSON数据交互是一种轻量级的数据交换格式,它使用简单的文本格式来描述数据对象,易于阅读和编写,同时也易于解析和生成。在Web应用程序中,JSON数据交互通常用于客户端和服务器之间的数据传输。 RESTful支持是指一种基于REST原则的Web服务架构,它使用HTTP协议中的GET、POST、PUT、DELETE等方法来实现对资源的操作。RESTful支持可以使Web应用程序更加灵活、可扩展和易于维护,同时也可以提高Web应用程序的性能和安全性。 ### 回答2: JSON是一种轻量级的数据交换格式,它可以把结构化的数据以一种简洁清晰的方式进行表达和传输。而在前后端数据交互中,JSON也成为了一个非常重要的格式。因为其具有易读、易写、易扩展的特点,而且可以和大部分编程语言轻松实现互转。因此,现在绝大多数的前后端数据交互都采用了JSON格式。 而RESTful作为一种基于HTTP协议的分布式系统的架构风格,也是一种常见的前后端数据交互方式。RESTful通过HTTP协议提供了一组标准的API,用于实现客户端与服务端之间的数据交互。同时,符合RESTful架构风格的API也具有可伸缩性、可读性、可维护性等特点,使得它被广泛用于构建Web服务和构建前后端分离的应用开发中。 对于JSON和RESTful来说,它们的关系并不是相互依赖的。JSON数据交互并不必须使用RESTful架构风格,而RESTful架构风格的API也可以使用其它的数据格式进行数据交互。但是,由于JSON格式具有易读易写的特点,而RESTful架构风格又具有规范化的API设计风格,所以它们俩的结合使用可以使得前后端数据交互更加简洁清晰。 在使用RESTful架构风格的API进行前后端数据交互时,我们可以使用JSON格式作为数据交换的协议。通常情况下,数据交互都是使用HTTP协议进行通信的,而JSON格式则可以在HTTP协议上传输,同时也可以轻松的被前后端代码解析。因此,JSON和RESTful的结合使用,可以实现前后端数据交互的高效、规范、易用。 ### 回答3: JSON数据交换是一种轻量级的数据交换格式,由于其简洁性、易读性和易用性,正在Web服务中变得越来越流行。 此外,JSON结构比XML更紧凑,因此它可以更快地传输数据。 在Web应用程序中,JSON最常用于通过HTTP请求和响应进行数据传输。由于RESTful API是一种使用HTTP请求的Web服务,因此JSON常用于RESTful API中。 RESTful支持是指Web服务器软件支持RESTful API的功能,它可以提供更好的Web应用程序性能和更简单更易于维护的代码。 RESTful API依赖于HTTP请求和响应,因此支持RESTful的Web服务器软件可以通过优化HTTP响应来提高Web应用程序的性能。另外,RESTful API具有良好的可扩展性和灵活性,因此在开发Web应用程序时经常使用。 JSON数据交换和RESTful支持通常是一起使用的,因为JSON数据交换是RESTful API中传输数据的最常用方式之一。使用JSON和RESTful API,Web应用程序可以快速、轻量级地传输数据,并提供更好的性能和可扩展性。因此,开发Web应用程序时,应该使用这些技术来提高系统的性能和可维护性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值