この記事では、PHP の HTTP プロトコル ポスト リクエスト パラメーターについて紹介します。具体的な内容は次のとおりです。
WEB開発では基本的にPOSTとGETのリクエストとレスポンスで情報が行われますが、GETはURLベースで直感的に理解できるため、情報が隠蔽されているため開発者にとっても安全です。 . アナログ送信ではトラブルが発生します。次のいくつかのブログ投稿では、私自身のメモと理解を組み合わせて、PHP で POST リクエストを行ういくつかの方法を詳しく説明します。間違いがある場合は、修正してください。HTTPプロトコル情報はWEB開発において重要な内容であり、それを理解することでBSインタラクションをより深く理解することができ、WEB開発をより低いレベルから理解することにも役立ちます。 HTTP プロトコルは、シンプルで柔軟かつ便利な通信プロトコルであり、ステートレス プロトコル、つまりメモリレス プロトコルであり、それぞれの対話が独立していることを覚えておく必要があります。
ブラウザの開発ツール(IEのF12、FirefoxのFireBugなど)の「ネットワーク」パネルを使用して、HTTPヘッダー情報を表示できます。
一般的にHTTPヘッダー情報は、リクエスト情報、レスポンス情報、インタラクション情報の3つに分類されます(個人的にはリクエスト情報の一種だと思っています)。
1、情報のリクエスト:
Web サイトにアクセスすると、クライアントはリクエスト情報を送信します。この情報にはデータは含まれません。単にサーバーに接続し、サーバーに応答情報を返すよう促します。フォーマットはリクエストラインとメッセージヘッダーの2つの部分から構成されます。
A. リクエストライン:メソッド(リクエストメソッド)パス(リクエストサイトアドレス)HTTP/バージョン(プロトコル/バージョン情報)
一般的なリクエストメソッドには、GET/POST/HEAD/OPTION などが含まれます。
B. メッセージヘッダー:
ホスト (必須): ホストとポート番号、デフォルトのポート番号は 80 です
受け入れる: コンテンツタイプ (image/gif text/html */*) を受け取ることを期待します
Accept-Encoding: 受信が予想される圧縮タイプ (gzip delat)
Accept-Charset: 受信が期待される文字セット(utf-8)
Accept-Language(zh-CN)
Cookie: ユーザーのCookie情報
接続: 接続制御
ユーザーエージェント: クライアント情報
… ...
以下は一般的なリクエストヘッダー情報です:
index.php HTTP/1.1を取得
受け入れる:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip、deflate、sdch
Accept-Language:zh-CN,zh;q=0.8
キャッシュ制御:max-age=0
接続:キープアライブ
クッキー:SOHUHOMETAB=訪問:2; IPLOC=CN1407;
ホスト:www.sohu.com
変更日: 2015 年 10 月 31 日土曜日 12:45:22 GMT
安全でないアップグレードリクエスト:1
ユーザーエージェント:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/45.0.2454.99 Safari/537.36
サーバーはデータを返します
レスポンス情報はステータス行、メッセージヘッダー、レスポンスボディの3つの部分に分かれています
A. ステータス行: HTTP/バージョン (プロトコル/バージョン情報) ステータスコード ステータステキスト (ステータスコードのテキスト説明)
ステータス コードには 5 つのカテゴリがあります:
1XX: 一時的な応答を示し、要求者に操作の継続を要求します
2XX: 応答が成功し、サーバーがリクエストに正常に応答したことを示します
3XX: リダイレクトを示し、リクエスターによるさらなる操作が必要です
4XX: クライアントエラーが発生し、サーバーが正常に応答できないことを示します
5XX: サーバー側のエラーを示し、サーバーが正常に応答できません
具体的な情報については、HTTPステータスコードの詳細な説明を参照してください
B. メッセージヘッダー:
サーバー: サーバー情報
コンテンツエンコーディング: データ圧縮形式
Content-Length: データ長
Content-Type: データ型
Cache-Control: キャッシュ制御
接続:接続制御
日付:日付情報
Expires: データの有効期限情報を返します
Last-Modified: 最終変更時刻を返します
Set-Cookie: クライアントの Cookie 情報を設定します
… ...
C. 応答テキスト
つまり、返されるページデータはページ上でHTMLドキュメントの形式で表現されます。
以下は一般的な応答メッセージです
HTTP/1.1 200 OK
キャッシュ制御:キャッシュなし
接続:閉じる
コンテンツエンコーディング:gzip
コンテンツの長さ:6947
コンテンツタイプ: text/html;
日付:2015 年 10 月 31 日土曜日 13:30:11 GMT
有効期限:-1
プラグマ:キャッシュなし
プロキシ接続:キープアライブ
サーバー:nginx/1.2.5
Set-Cookie:JSESSIONID=yiuug4yejhc1cdbzydoxlcpn;パス=/
3、インタラクティブな情報
リクエストデータを含むリクエスト情報です。ユーザーがファイルをアップロードしたり、登録したりするときによく使用されます。 リクエストライン、メッセージヘッダー、リクエストボディの3つの部分に分かれています
A. 情報を要求するリクエストラインと同じです
B. リクエストヘッダーに基づいてリクエストボディに関するデータを追加しました
Content-Type: アップロードされた情報のコンテンツタイプ
Content-Length: アップロードされた情報の長さ
… ...
C. リクエストテキスト:
それは、要求された特定のデータ文字列 (name=xxx&passwork=xxx) です。 もちろん、セキュリティ上の理由から、POST 情報は暗号化され、エンコードされることがあります。
以下は一般的なリクエスト メッセージです:
login.php HTTP/1.1を取得
ホスト:passport.sohu.com
受け入れる:text/html、application/xhtml+xml、application/xml
Accept-Encoding:gzip、deflate
Accept-Language:zh-CN,zh;q=0.8
キャッシュ制御:max-age=0
接続:キープアライブ
コンテンツの長さ:166
Content-Type:application/x-www-form-urlencoded
リファラー:http://mail.sohu.com/
ユーザーエージェント:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/45.0.2454.99 Safari/537.36
フォームデータ
Domain=sohu.com&callback=passport20008375022711697966_cb1446298206568&appid=1113&userid=FDFFDF%40sohu.com&password=a3f4384c2bc44fa909ffd0ecc5fa8eb9&persistentcookie=0
ブラウザがサーバーに何を送信するかを理解すれば、他の方法を使用して自分自身をサーバーに偽装することは難しくありません。
次のセクションでは、PHP と JS が最も基本的な URL を処理する方法を紹介し、GET リクエストの部分を解決しながら、POST リクエストの送信をシミュレートする準備も整えます。
このブログ投稿が役立つと思われる場合は、お勧めしたり、質問がある場合は、以下にメッセージを残して一緒に話し合うこともできます。ありがとうございます。
。