jsonp三次握手

89 阅读4分钟

同源策略,所谓同源,是指只有在域名、协议名、端口号都相同。不同源的客户端脚本在没有明确授权的情况下,是不能够读写对方的资源的。

只有满足同源的脚本才可以获取资源,虽然这样确实保证了网络上的安全性,但是另一方面又限制了资源之间的互相利用,比如我们的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多种,经常使用的大概142XX 成功:(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  服务器暂时处于超负载或正在停机维护,无法处理请求