get、post、put区别

区别

put与post


PUT和POS都有更改指定URI的语义.但PUT被定义 idempotent的方法,POST则不是。
idempotent的方法:如果一个方法重复执行多次,产生 效杲是一样的,那就是idempotent的。
也就是说:
 。PUT请求:如果两个请求相同,后一个请求会把 第一个请求覆盖掉。(所以PUT用来改资源)
 。Post请求:后一个请求不会把第一个请求覆盖掉。 (所以Post用来增资源)


get 与 post


 1. GET参数通过URL传递,POST放在Request body 中。
 2. GET请求会被浏览器主动cache,而POST不会,的 非手动设置。
 3. GET请求参数会被完整保留在浏览器历史记录 里,而POST中的参数不会被保留。
 4. Get请求中有非ASCII字符,会在请求之前进行 转码,POST不用,因为POST在Request body中, 通过MIME,也就可以传输非ASCII字符。
5 .一般我们在浏览器输入一个网址访问网站都是 GET请求
6 . HTTP的底层是TCP/IP。HTTP只是个行为准则, 而TCP才是GET 和POST怎么实现的基本。
 GET/POST都是TCP链接。GET和POST能做的事 情是一样一样的。但是请求的数据量太大对浏览 器和服务器都是很大负担。所以业界有了不成文 规定,(大多数)浏览器通常都会限制url长度在 2K个字节,而(大多数)服务器最多处理64K大 小的url。
7 . GET产生一个TCP数据包;POST产生两个TCP数 据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200 (返 回数据);而对于POST,浏览器先发送header, 服务器响应100 continue,浏览器再发送data,服 务器响应200 ok (返回数据)。
8 .在网络环境好的情况下,发一次包的时间和发两 次包的时间差别基本可以无视。而在网络环境差 的情况下,两次包的TCP在验证数据包完整性 上,有非常大的优点。但并不是所有浏览器都会 在POST中发送两次包,Firefox就只发送一次。

你可能感兴趣的:(javascript)