HTTP中get和post
程序员文章站
2022-08-08 20:12:00
HTTP中get和post的区别 GET 从指定的资源请求数据。 POST 向指定的资源提交要被处理的数据 | | GET | POST | | | | | | 后退/刷新 | 无害的 | 数据会被重新提交 | | 书签 | 可收藏为书签 | 不可收藏为书签 | | 缓存 | 能被缓存 | 不能缓存 ......
http中get和post的区别
- get - 从指定的资源请求数据。
- post - 向指定的资源提交要被处理的数据
get | post | |
---|---|---|
后退/刷新 | 无害的 | 数据会被重新提交 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application | 多为二进制数据使用多重编码 |
历史 | 会保留参数在历史中 | 不会保存在历史数据中 |
对长度的限制 | 最大为2048 | 无限制 |
对数据类型的限制 | ascii | 没有限制,也可以为二进制数据 |
安全性 | 安全性较差,敏感数据,密码请勿使用后 | 安全性较高 |
可见性 | 数据在url中对所有人可见 | 数据不会限制在url中 |
常见问题:
-
get方法参数是固定的么?
在约定中我们的参数是写在?后面,用&分割,解析报文的过程是通过获取tcp数据,用正则表达式等工具获取header和body
-
get的长度限制:
浏览器地址栏输入的参数是有限的,http协议中没有长度限制,对url的长度限制通常为浏览器或者服务器的原因
-
post比get安全:
因为post数据在地址栏中不可见, 但是安全只是相对的,因为http在网络中是明文传输的,要想加密,就必须要用https
-
post会产生2个tcp数据包?
post会将header和body分开发送,但是http协议中没有明确会产生2个数据包,而且实际测试的时候也不会分开发送,所以分开发送只是部分浏览器和框架的请求方法,不属于post的必然行为。
请说一下get和post两者的本质区别:
get和post本质上两者没有任何区别。他们都是http协议中的请求方法。底层实现都是基于tcp/ip协议。上述的所谓区别,只是浏览器厂家根据约定,做得限制而已
http请求,最初设定了八种方法。这八种方法本质上没有任何区别。只是让请求,更加有语义而已。
- options 返回服务器所支持的请求方法
- get 向服务器获取指定资源
- head 与get一致,只不过响应体不返回,只返回响应头
- post 向服务器提交数据,数据放在请求体里
- put 与post相似,只是具有幂等特性,一般用于更新
- delete 删除服务器指定资源
- trace 回显服务器端收到的请求,测试的时候会用到这个
推荐阅读
-
如何解决Ajax访问不断变化的session的值不一致以及HTTP协议中的GET、POST的区别
-
PHP中Http协议post请求参数
-
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
-
Angularjs中$http以post请求通过消息体传递参数的实现方法
-
php中file_get_content 和curl以及fopen 效率分析
-
php中$_GET与$_POST过滤sql注入的方法
-
[日常] 使用TCPDUMP和Ethereal抓包分析HTTP请求中的异常情况
-
vue 2.x 中axios 封装的get 和post方法
-
flask 开发Restful API(post和get方式实例)
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。