使用 GET 方法的优缺点
由于 GET 方法发送的数据显示在 URL 中,因此可以使用特定查询字符串值为页面添加书签。
GET 方法不适合传递用户名和密码等敏感信息,因为这些信息在 URL 查询字符串中完全可见,并且可能作为访问过的页面存储在客户端浏览器的内存中。
由于 GET 方法将数据分配给服务器环境变量,因此 URL 的长度是有限的。
因此,要发送的总数据是有限制的。
GET方法 与 POST 方法比较
GET | POST | |
---|---|---|
按后退键或者重新加载 | 无害 | 数据将被重新提交 (浏览器应提醒用户 数据将被重新提交) |
书签 | 可以加书签 | 不能加书签 |
缓存 | 可以缓存 | 未缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或者 multipart/form-data。 对二进制数据使用多部分编码 |
历史记录 | 参数保留在浏览器历史记录中 | 参数不保存在浏览器历史记录中 |
数据长度限制 | 是的,发送数据时, GET方法将数据添加到URL; 并且 URL 长度有限制(最大 URL 长度为 2048 个字符) | 没有限制 |
数据类型限制 | 只允许使用 ASCII 字符 | 没有限制。也允许二进制数据 |
安全性 | 与 POST相比,GET 更少发送数据是 URL 的一部分 | POST 比 GET 安全一些,因为 参数不会存储 在浏览器历史记录或者 Web 服务器日志中 |
可见 | URL 中的数据对所有人可见 | URL中不显示数据 |
https://onitroad.com 更多教程
POST方法
POST 方法通过 HTTP 标头传输信息。
信息按照 GET 方法中的描述进行编码,并放入名为“QUERY_STRING”的标头中。
POST 方法对要发送的数据大小没有任何限制。
POST 方法可用于发送 ASCII 和二进制数据。
POST 方法发送的数据通过 HTTP 标头,因此安全性取决于 HTTP 协议。
通过使用安全 HTTP,我们可以确保信息是安全的。
PHP 提供了$_POST
关联数组来使用POST 方法访问所有发送的信息。
<!DOCTYPE html> <html lang="en"> <head> <title> PHP POST 方法示例</title> </head> <body> <?php if(isset($_POST["name"])){ echo "<p>Hi, " . $_POST["name"] . "</p>"; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">名字:</label> <input type="text" name="name" id="inputName"> <input type="submit" value="提交"> </form> </body>
HTTP
超文本传输协议 (HTTP - Hypertext Transfer Protocol) 旨在实现客户端和服务器之间的通信。
HTTP 用作客户端和服务器之间的请求-响应协议。
Web 浏览器可能是客户端,而托管网站的计算机上的应用程序可能是服务器。
客户端(浏览器)向服务器提交 HTTP 请求;然后服务器向客户端返回响应。
客户端(浏览器)向服务器提交 HTTP 请求;然后服务器向客户端返回响应。
响应包含有关请求的状态信息,也可能包含请求的内容。
浏览器客户端可以通过两种方式向 Web 服务器发送信息。
GET
从指定资源请求数据POST
向指定资源提交要处理的数据
GET方法
GET 方法发送添加到页面请求的编码用户信息。
页面和编码信息由?
字符 分隔。
http://www.onitroad.com/index.htm?name1=value1&name2=value2
- GET 请求可以被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可以添加书签
- 在处理敏感数据时永远不要使用
- GET 请求 GET 请求有长度限制
- GET 请求应该只用于检索数据
<!DOCTYPE html> <html lang="zh-CN"> <head> <title> PHP GET 方法示例</title> </head> <body> <?php if(isset($_GET["name"])){ echo "<p>Hi, " . $_GET["name"] . "</p>"; } ?> <form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">苗子:</label> <input type="text" name="name" id="inputName"> <input type="submit" value="提交"> </form> </body>
日期:2020-09-17 00:10:24 来源:oir作者:oir