HTTPプロトコルGETとPOST

1011 ワード

GET方法は、必要なパラメータをURLに追加し、サーバに渡すことができます。これらのパラメータは、ブラウザのアドレスバーに表示されます。http://127.0.0.1:8080/home?name=aliceこれはGET方法のHTTPである。?の後、転送のパラメータはname=aliceです。複数のパラメータであれば、中間は&で区切られます。URLにはスペースや特殊な文字が現れてはいけません。このような文字があれば、%HHのような文字列にコンパイルされます。ブラウザによってURLの長さに制限があります。したがって、GETの送信される文字列の数には制限があります。
POSTメソッドは必要なパラメータをhttpプロトコルのBody部分に置いてサーバーに転送します。転送はヘッド部分を先に転送して、Body部分を転送します。POST伝送のパラメータはブラウザのアドレスバーに表示されません。POST伝送のデータは理論的には大きさ制限がない。
プロトコルではPOSTが提出したデータはメッセージ本体(entity-body)に置かなければならないと規定されていますが、プロトコルではデータがどのような符号化方式を使用しなければならないかは規定されていません。実際には、開発者は、メッセージ本体のフォーマットを自分で決定することができます。最後に送信されたHTTP要求が上記のフォーマットを満たしていればいいです。
POSTMANを使って私のサーバにPOST要求を送信しています。POST要求を送信しましたが、hear部にパラメータを追加しました。サーバーは正常な解析パラメータです。しかし、私のパラメータの文字数が大きい時にエラーが発生しました。サーバーのエラー表示はhearが大きすぎます。最後に自分でパラメータをbodyの部分に置くと正常に解析できます。この説明は、このようなURLアドレスhttp://127.0.0.1:8080/home?name=aliceもPOSTとすることができ、hear中のmethodパラメータがPOSTであればよいというものである。サーバーはこのパラメータでどの方法を使っているかを判断します。URLの形ではありません。