jsonp和GET、POST的原理解析及GET和POST的区别

来源:互联网 发布:linux 剩余空间 编辑:程序博客网 时间:2024/06/11 20:17
同源策略:    同源策略是1995年 Netscape 公司引入浏览器的,目前浏览器都是实行这个策略,    同源策略是为了保证用户信息的安全,防止恶意的网站窃取数据的。    同源指的是三个相同:协议相同、域名相同、端口号相同但是也是因为浏览器同源策略的原因,前端页面不能跨域请求所需资源但是在日常的WEB开发中,需要进行跨域请求,常用有两种方式可以跨域请求所需资源1:JSONP    JSONP是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,老式浏览器全部支持,    服务器改造非常小。    JSONP的原理是利用script标签的src属性可以进行不受同源策略的限制,进行跨域请求数据的属性,在    HTML页面中添加一个script标签,向服务器发送请求,服务器收到请求后,返回数据,    将数据放在指定的回调函数中,回调函数可以对数据进行操作2:GET、POSTGET、POST是ajax请求,ajax请求是基于XMLHttpRequest对象的跨域请求方式(低版本的ie是    ActiveXObject对象),XMLHttpRequest是ajax的核心机制,它是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。GET和POST的区别:    1.post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)    2.post发送的数据量更大(get有url长度限制)    3.post能发送更多的数据类型(get只能发送ASCII字符)    4.post比get慢 

因为get请求的请求参数是放在header中(添加在链接后面),而post请求的参数是放在body中,其实url的长度限制不是get和post所决定的
get和post相比,要快,是因为get和post的请求过程不同,不多前三步都是一样的,都是要先经过和服务器的三次握手:
1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  get请求在第四步就会接收到了服务器返回的数据,而post请求在第四步是接收到服务器发送的100 continue指令,客户端在发送数据请求服务端,服务端才会去返回数据,
  就是说POST比GET多进行了一次客户端和服务器的打交道,所以GET比POST快。

原创粉丝点击