HTTPメソッド:GET、POSTの比較
二つの最も一般的なHTTPメソッド:GETとPOST。
HTTPとは何ですか?
ハイパーテキスト転送プロトコル(HTTP)は、クライアントとサーバ間の通信を確保するように設計されています。
応答プロトコル - HTTPは、クライアントとサーバ間のリクエスト作品です。
ウェブブラウザがクライアントであってもよいし、コンピュータ上のネットワークアプリケーションは、サーバとして使用することができます。
例:クライアント(ブラウザ)サーバにHTTPリクエストを送信するために、サーバーがクライアントに応答を返します。 応答は、要求のステータス情報を含み、コンテンツを要求することができます。
HTTPリクエストの2種類の方法:GETとPOST
クライアントとサーバーの要求の間 - 2最も一般的に使用される方法への応答は次のとおりです:GETとPOST。
- GET -指定されたリソースからデータを要求します。
- POST -指定されたリソースを処理するデータの提出。
GETメソッド
クエリ文字列(名前/値のペア)は、URLのGETリクエストで送信されることに注意してください:
/test/demo_form.php?name1=value1&name2=value2
他のコメントのいくつかについての要求をGET:
- GETリクエストをキャッシュすることができます
- GETリクエストは、ブラウザの履歴に残ります
- 要求はブックマークが可能GET
- 機密データを扱う際の要求は使用すべきではありませんGET
- GETリクエストは、長さの制限を持っています
- 要求は、データを取得するために使用されるべきでGET
POSTメソッド
クエリ文字列(名前/値のペアが)のHTTP POSTリクエストのメッセージボディで送信されることに注意してください:
POST /test/demo_form.php HTTP/1.1
Host: w3cschool.cc
name1=value1&name2=value2
Host: w3cschool.cc
name1=value1&name2=value2
他のコメントのいくつかについてPOSTリクエスト:
- POSTリクエストはキャッシュされません
- POSTリクエストは、ブラウザの履歴に保持されていません
- POSTは、ブックマークすることができません
- データ長のためのPOSTリクエストは必要ありません。
比較GETとPOST
次の表は、2つのHTTPメソッドを比較:GETとPOST。
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! |
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
他のHTTPリクエストメソッド
次の表は、他のHTTPリクエストメソッドの一部を示します:
方法 | 描述 |
---|---|
HEAD | 与 GET 相同,但只返回 HTTP 报头,不返回文档主体。 |
PUT | 上传指定的 URI 表示。 |
DELETE | 删除指定资源。 |
OPTIONS | 返回服务器支持的 HTTP 方法。 |
CONNECT | 把请求连接转换到透明的 TCP/IP 通道。 |