HTTP中get和post
程序员文章站
2022-05-03 13:55:28
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 回显服务器端收到的请求,测试的时候会用到这个
推荐阅读
-
php中GET和POST请求发送几种方法总结
-
PHP的curl实现get,post和cookie(实例介绍)_PHP教程
-
HTML中Get请求和Post请求的区别_html/css_WEB-ITnose
-
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?
-
php中$_REQUEST、$_POST、$_GET的区别和联系小结_php技巧
-
php中curl和file_get_content的区别_PHP
-
php中file_get_contents 出现HTTP request failed! ...
-
WordPress开发中的get_post_custom()函数使用解析,wordpressgetpost
-
php中curl和file_get_content函数抓页面对比
-
Python笔记-Flask框架Get和Post参数相关