同源策略,所谓同源,是指只有在域名、协议名、端口号都相同。不同源的客户端脚本在没有明确授权的情况下,是不能够读写对方的资源的。
只有满足同源的脚本才可以获取资源,虽然这样确实保证了网络上的安全性,但是另一方面又限制了资源之间的互相利用,比如我们的AJAX, AJAX也是通过url来获取数据,同样也会受到同源策略的限制。
跨域都有什么方法 JSONP的工作原理:利用script标签的src属性没有跨域限制的漏洞来达到与第三方的通讯的目的。不仅如此, 凡是有src属性的标签都不受同源策略的影响。 1.flash 现在已经不用了 2.服务器代理中转 3.JSONP 4.ifame + document.domain 5.ifame + window.name 6.iframe + location.hash 7.HTML5的POSTMessage方法
jsonp的缺点 1.优点 1.1它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略; 1.2它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持 1.3在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分开了。 我提供的jsonp服务只提供纯服务的数据,至于提供服务以 后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染 同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同 一个jsonp服务。 2.缺点 2.1它只支持GET请求而不支持POST等其它类型的HTTP请求 2.2它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。 2.3 jsonp在调用失败的时候不会返回各种HTTP状态码。 2.4缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么? 所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的。
三次握手: 1.先发送一个带有SYN标志的数据包给对方, 2.接受端收到后会回传一个带有SYN/ACK标志的数据包来表示传达确认信息, 3.最后发送端再回传一个带有ACK标志的数据包,代表握手结束
HTTP状态码 HTTP报文信息 HTTP首部字段
1.HTTP状态码:用来描述返回的请求结果,记住状态码,我们可以知道是正确的处理了请求还是出现了错误,状态码响应类别一共有五种,
比如200;数字中的第一位指响应类别,后两位无分类。
五种类别分别为: 原因短语:
1XX(信息性状态码) 接受的请求正在处理 不常见
2XX(成功状态码) 请求正常处理完毕
3XX(重定向状态码) 需要进行附加操作已完成请求
4XX(客户端错误状态码) 服务器无法请求类别
5XX(服务器错误状态码) 服务器处理请求出错
HTTP状态码一共有60多种,经常使用的大概14种
2XX 成功:(1)200 ok 客户端请求在服务器端正常处理
(2)204 No Content 请求成功但没有资源可以返回
(3)206 Partial Content 表示客户进行了范围请求,而服务器成功执行了这部分的GET请求 首部字段中有content-rage意思是客户端进行了范围请求
3XX 重定向:(1)301 Moved Permanently 永久性重定向
(2)302 Found 临时性重定向
(3)303 See Other 请求的对应资源存在着另一个URI,应使用GET方法定向获取请求的资源
(4)304 Not Modified 资源已找到,但是未符合要求
(5)307 Temporary Redirect 临时重定向
4XX 客户端错误:(1)400 Bad Request请求报文存在语法错误
(2)401 Unauthorized 发送的请求需要通过HTTP认证的认证信息。如果之前请求过一次,则表示用户认证失败
(3)403 Forbidden 不允许访问该资源
(4)404 Bad Request 服务器上没有该资源
5XX 服务器错误:(1)500 Internal Server Error服务器端在执行请求时发生错误
(2)503 Service Unavailable 服务器暂时处于超负载或正在停机维护,无法处理请求