https://juejin.im/entry/59b8fb276fb9a00a42474a6fhtml
什么是HTTP?前端
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为普遍的一种网络协议,全部的WWW文件都必须遵照这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。node
域名级别nginx
域名可分为不一样级别,包括顶级域名、二级域名、三级域名等。es6
子域名:子域名,是顶级域名(一级域名或父域名)的下一级web
泛域名是指一个域名下的全部子域名都被解析到同一个IP地址上。正则表达式
2.什么是同源策略?数据库
同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,若是缺乏了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即使两个不一样的域名指向同一个ip地址,也非同源。编程
同源策略限制如下几种行为:json
1) Cookie、LocalStorage 和 IndexDB 没法读取
2) DOM 和 Js对象没法得到
3) AJAX 请求不能发送
https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
同源策略限制了从同一个源加载的文档或脚本如何与来自另外一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。
它的存在能够保护用户隐私信息,防止身份伪造等(读取Cookie)。(http://www.imooc.com/article/40074)
若是两个页面的协议,端口(若是有指定)和主机都相同,则两个页面具备相同的源。
当涉及到同源策略时,Internet Explorer 有两个主要的不一样点
http://company.com:81/index.html
和 http://company.com/index.html
属于同源而且不受任何限制。这些例外是非标准的,其它浏览器也未作出支持,但会助于开发基于window RT IE的应用程序。
使用 document.domain
来容许子域安全访问其父域时,您须要在父域和子域中设置 document.domain 为相同的值。
https://juejin.im/entry/59b8fb276fb9a00a42474a6f
重定向:重定向(Redirect)就是经过各类方法将各类网络请求从新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。浏览器URL的地址栏改变
转发是浏览器只作了一次访问请求。重定向是浏览器作了至少两次的访问请求;
原文连接:https://blog.csdn.net/xianyadong/article/details/81230808
转发是服务器行为,重定向是客户端行为。转发耗时比重定向少。
转发——>客户浏览器发送HTTP请求——>web服务器接受请求——>调用内部一个方法在容器内部完成请求处理和转发动做——>再将转发跳转到的那个网页资源返回给客户; 转发只能在同一个容器内完成 转发的时候浏览器地址是不会变的,在客户浏览器里只会显示第一次进入的那个网址或者路径,客户看不到这个过程,只是获得了想要的目标资源。转发行为浏览器只作了一次请求。(转发只能跳转一次)
重定向——>客户浏览器发送HTTP请求——>web服务器接受请求后发送302状态码以及新的位置给客户浏览器——>客户浏览器发现是302响应,则自动再发送一个新的HTTP请求,请求指向新的地址(302:Found 临时移动,但资源只是临时被移动。即你访问网址A,可是网址A由于服务器端的拦截器或者其余后端代码处理的缘由,会被重定向到网址B。)——>服务器根据此请求寻找资源发个客户;再客户浏览器中显示的是重定向以后的路径,客户能够看到地址的变化。重定向行为浏览器作了至少两次请求。(重定向能够跳转屡次)
————————————————
回调
https://juejin.im/entry/59b8fb276fb9a00a42474a6f
跨域是指一个域下的文档或脚本试图去请求另外一个域下的资源,这里跨域是广义的。
其实咱们一般所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。
1)经过jsonp跨域
2)document.domain + iframe跨域
3)location.hash + iframe
4)window.name + iframe跨域
5)postMessage跨域
6)跨域资源共享(CORS)
7)nginx代理跨域
8)nodejs中间件代理跨域
9)WebSocket协议跨域
3、JSONP的原理,怎么实现的说一下什么是Promise,请求失败调用什么函数
1.JSON
(https://www.liaoxuefeng.com/wiki/1022910821149312/1023021554858080)
http://es6.ruanyifeng.com/#docs/promise
1.Promise的含义
Promise是异步编程的一种解决方案。
所谓Promise
,简单说就是一个容器,里面保存着某个将来才会结束的事件(一般是一个异步操做)的结果。从语法上说,Promise 是一个对象,从它能够获取异步操做的消息。Promise 提供统一的 API,各类异步操做均可以用一样的方法进行处理。
2.Promise
对象有如下两个特色。
(1)对象的状态不受外界影响。Promise
对象表明一个异步操做,有三种状态:pending
(进行中)、fulfilled
(已成功)和rejected
(已失败)。只有异步操做的结果,能够决定当前是哪种状态,任何其余操做都没法改变这个状态。这也是Promise
这个名字的由来,它的英语意思就是“承诺”,表示其余手段没法改变。
(2)一旦状态改变,就不会再变,任什么时候候均可以获得这个结果。Promise
对象的状态改变,只有两种可能:从pending
变为fulfilled
和从pending
变为rejected
。只要这两种状况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型)。若是改变已经发生了,你再对Promise
对象添加回调函数,也会当即获得这个结果。这与事件(Event)彻底不一样,事件的特色是,若是你错过了它,再去监听,是得不到结果的。
3.请求成功调用什么函数
resolve
函数的做用是,将Promise
对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操做成功时调用,并将异步操做的结果,做为参数传递出去;
4.请求失败调用什么函数
reject
函数的做用是,将Promise
对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操做失败时调用,并将异步操做报出的错误,做为参数传递出去。
正则表达式匹配手机号 var regex= /^[1][3,4,5,7,8][0-9]{9}$/
邮箱:只容许英文字母、数字、下划线、英文句号、以及中划线组成
正则表达式匹配邮箱 var regex=/^([\w+\.])+@\w+([.]\w+)+$/
\w
匹配任意的字母、数字和下划线,至关于[A-Za-z0-9_]
。
*
星号表示某个模式出现0次或屡次,等同于{0,}
。
模式的精确匹配次数,使用大括号({}
)表示。{n}
表示刚好重复n
次,{n,}
表示至少重复n
次,{n,m}
表示重复很多于n
次,很少于m
次。
+
加号表示某个模式出现1次或屡次,等同于{1,}
。
?
问号表示某个模式出现0次或1次,等同于{0, 1}
。
(1)点字符(.)
点字符(.
)匹配除回车(\r
)、换行(\n
) 、行分隔符(\u2028
)和段分隔符(\u2029
)之外的全部字符。注意,对于码点大于0xFFFF
字符,点字符不能正确匹配,会认为这是两个字符。
(2)位置字符
位置字符用来提示字符所处的位置,主要有两个字符。
^
表示字符串的开始位置$
表示字符串的结束位置(3)选择符(|
)
竖线符号(|
)在正则表达式中表示“或关系”(OR),即cat|dog
表示匹配cat
或dog
。
正则表达式中那些有特殊含义的元字符,若是要匹配它们自己,就须要在它们前面要加上反斜杠。好比要匹配+
,就要写成\+
。
模式的精确匹配次数,使用大括号({}
)表示。{n}
表示刚好重复n
次,{n,}
表示至少重复n
次,{n,m}
表示重复很多于n
次,很少于m
次。
若是是大张图片应该用JPG,压缩,产生的文件小
1.图片懒加载
https://www.jianshu.com/p/68a6683b6a6a
网页首先用一张轻量级的图片占位,当占位图片被拖动到视窗,瞬间加载目标图片,而后替换占位图片。
http://www.javashuo.com/article/p-ewlriwvd-eh.html
图片懒加载,在页面上的未可视区域能够添加一个滚动条事件,判断图片位置与浏览器顶端的距离与页面的距离,若是前者小于后者,优先加载。
什么是图片懒加载问题:
对于图片过多的页面,为了加速页面加载速度,
因此不少时候咱们须要将页面内未出如今可视区域内的图片先不作加载, 等到滚动到可视区域后再去加载。
这样子对于页面加载性能上会有很大的提高,也提升了用户体验。
2.雪碧图
https://www.jianshu.com/p/4f64f7be8efa
雪碧图也叫CSS精灵, 是一种CSS图像合成技术;
通俗来讲:将小图标合并在一块儿以后的图片称做雪碧图,每一个小图标的使用须要配合background-position来获取。
1)将多张图片合并到一张图片中,能够减少图片的总大小。
2)将多张图片合并成一张图片后,下载所有所需的资源,只需一次请求。能够减少创建链接的消耗。
美的面经
连接:https://www.nowcoder.com/discuss/277537?type=all&order=time&pos=&page=1
一、wx.request()使用cookie的话怎么配置