11. cookie_session_原生ajax_readyState的值_同源策略_跨域_jsonp的使用

1. cookie

浏览器存储技术。(服务器将少量数据交于浏览器存储管理)

作用: 存储数据, 解决 http 协议无状态问题

工作流程:

浏览器发送请求给服务器,请求登录

服务器返回响应给浏览器,此时携带了cookie(其中包含着当前用户的唯一标识)

浏览器接受到响应中cookie,得保存下来

浏览器下一次发送请求时,会自动携带上cookie,

服务器接受到请求,解析cookie,从而判断是哪个用户发送的请求(解决http协议无状态问题)

服务器端的使用:

设置cookie        res.cookie(key, value, options)

获取cookie        引入第三方中间件解析 cookie-parser        req.cookies

清除浏览器cookie        res.clearCookie(key)

前端使用:

document.cookie        读写二合一

清除        document.cookie = ‘hello=123;expires=‘ + new Date(Date.now() - 1000);

特点:

cookie 数量有限制,同一个域名下大约 20 个左右(不同浏览器不一样)

cookie 大小有限制,每一个 cookie 最大值大约 4kb 左右(不同浏览器不一样)

2. session

也是一种解决http协议无状态问题的方案

不同的是:

session存储位置是服务器

存储大小近乎无限

传输流量更小(只产生一个cookie)

3. 请写出原生 ajax

创建xhr对象

绑定事件监听

onreadystatechange  会监听readyState值的变化,一旦发生变化,就会触发当前事件

设置请求信息

xhr.open(请求方式, 请求地址(get请求参数在这写, 以查询字符串的方式))

发送请求

xhr.send(body(post请求的请求体参数));

问题:

chrome 和 firefox: 第二次 get 请求默认走协商缓存,状态码 304,还是会向服务器发送请求

ie:第二次 get 请求默认走强制缓存,状态码 200,不会向服务器发请求

解决:让每一次请求不一样,只要请求不一样,就不会走缓存

4. 谈谈readyState的值

0: xhr 对象创建成功,但是 xhr.open()  方法还未调用

1: xhr.open() 方法已经调用了,但是还未调用 xhr.send() 方法(意味着还没有发送请求,还可以设置请求头信息)

2: xhr.send() 方法已经调用了,接受到了部分响应数据(响应首行和响应头)

3: 接受了响应体数据(如果响应体数据较小或者是纯文本,在此阶段就全部接受完了)

4: 接受了全部响应体数据(数据较大或者音视频资源等)

5. 跨域

同源: 协议、域名、端口号 必须完全相同

同源策略 (Same-Origin Policy) 最早由 Netscape 公司提出,是浏览器的一种安全策略

违背同源策略就是跨域

解决最终原理:绕过浏览器的 ajax 引擎就 ok,所以后面还有服务器代理模式、Nginx 反向代理等方案

解决方案:

  • jsonp

利用 script 标签能够跨域的特性解决跨域的

只能发送 get 请求, 兼容性好

步骤:

① 创建 script 标签

② 设置响应成功的回调函数

③ 设置 script 的src 属性

④ 将 script 添加到页面中生效

⑤ 服务器必须响应 callback(data) 格式数据

  • cors 

ing... ...

原文地址:https://www.cnblogs.com/tianxiaxuange/p/10201858.html

时间: 2024-07-31 02:23:03

11. cookie_session_原生ajax_readyState的值_同源策略_跨域_jsonp的使用的相关文章

同源策略和跨域-总结

目录: 1.同源策略 2.跨域 3.几种跨域技术 1.同源策略 什么叫同源? URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源.相反,只要协议,域名,端口有任何一个的不同,就被当作是跨域. e.g. 对于http://store.company.com/dir/page.html进行同源检测: URL 结果 原因 http://store.company.com/dir2/other.html 成功 仅路径不同 http://store.company.c

【转】同源策略和跨域请求解决方案

一.一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源.举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: URL 结果 原因 http://a.xyz.com/dir2/other.html 成功 协议,端口(如果有指定)和域名都相同 http://a.xyz.com/dir/inner/another.html 成功 协议,端口(如果有指定)和域名都相同 https://a.xyz.com/secure

第二百七十四节,同源策略和跨域访问

同源策略和跨域访问  什么是同源策略 尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措施之间都试图保持相互独立,但是攻击者只要能在出错的地方注入少许JavaScript,所有安全控制几乎全部瓦解--最后还起作用的就是最弱的安全防线:同源策略.同源策略管辖着所有保安措施,然而,由于浏览器及其插件,诸如Acrobat Reader.Flash 和Outlook Express漏洞频出,致使同

解说同源策略和跨域访问

尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措施之间都试图保持相互独立,但是攻击者只要能在出错的地方注入少许JavaScript,所有安全控制几乎全部瓦解--最后还起作用的就是最弱的安全防线:同源策略.同源策略管辖着所有保安措施,然而,由于浏览器及其插件,诸如Acrobat Reader.Flash 和Outlook Express漏洞频出,致使同源策略也频频告破. 既然web应用的最

浏览器的同源策略和跨域访问

1. 什么是同源策略 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略.    何谓同源:        URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源.    同源策略:        浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性.        从一个域上加载的脚本不允许访问另外一个域的文档属性. 举个例子:      

同源策略和跨域解决方案

同源策略 一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源. 举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: URL 结果 原因 http://a.xyz.com/dir2/other.html 成功   http://a.xyz.com/dir/inner/another.html 成功   https://a.xyz.com/secure.html 失败 不同协议 ( https和http ) h

同源策略与跨域问题

在前后端通信时,有时会遇到跨域问题,接下来将从以下几个方面进行跨域详解. 1. 为什么会有跨域问题? 2. 什么是同源策略? 3.前后端通信方式有哪些? 4.解决跨域通信的方式有哪些? 5.解决跨域方式详细说明 为什么会有跨域问题? 答:是由于浏览器的同源策略. 什么是同源策略? 答:同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能. 同源策略限制了从一个源加载的文件或脚本如何与另一个源的资源进行交互.这是一个用于隔离潜在恶意文件的安全机制. 那什么

浏览器的同源策略及跨域解决方案

同源策略 一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源. 举个例子: 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: URL 结果 原因 http://a.xyz.com/dir2/other.html 成功   http://a.xyz.com/dir/inner/another.html 成功   https://a.xyz.com/secure.html 失败 不同协议 ( https和http ) h

JS同源策略和跨域访问

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现. 1. 什么是同源策略 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略. 何谓同源: URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源. 同源策略: 浏览器的同源策略,限制了来自不同源的"doc