サーバーは通常、リクエストのメッセージ本文がリクエストヘッダーのContent-Typeフィールドに基づいて*エンコーディング*される方法を学習し、その後本文を解析します。したがって、POST 送信データ スキームには、Content-Type とメッセージ本文のエンコード方式という 2 つの部分が含まれます。
application/x-www-form-urlencoded最も基本的なフォームフォーム構造、文字パラメーターを渡すために使用されるキーと値のペア、リクエスト構造は次のとおりです
POST HTTP/1.1Host: www.demo.comCache-Control: no-cachePostman-Token: 81d7b315-d4be-8ee8-1237-04f3976de032Content-Type: application/x-www-form-urlencodedkey=value&testKey=testValue
urlEncode;
multipart/form-data である必要があります。ファイルをアップロードするときは、データを送信する最も一般的な方法です。リクエスト構造を見てくださいPOST HTTP/1.1Host: www.demo.comCache-Control: no-cachePostman-Token: 679d816d-8757-14fd-57f2-fbc2518dddd9Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="key"value------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="testKey"testValue------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="imgFile"; filename="no-file"Content-Type: application/octet-stream<data in here>------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Typeはmultipart/form-dataであり、境界が生成されます。リクエスト本文内の各 を区別するための Data; 各データは –boundary で始まり、その後に content description 情報が続き、その後に –boundary- が続きます。最後に改行; テキストデータとファイル、画像の内容説明は異なりますテキストパラメータ:
Content-Disposition: form-data; name="key"Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="imgFile"; filename="no-file"Content-Type: application/octet-streamContent-Transfer-Encoding: binary
application/json
text/xml
text/plain
リクエストヘッダーの内容 -Type をこれらに設定することも非常に一般的ですが、一般に Web フロントエンド開発では、リクエストボディは固定された構造を持たず、対応するデータストリームが存在します。データは直接送信されます。上記の 2 つと同じである必要はなく、データが json、xml、および text に対応している必要があります。
以上が投稿でファイルとテキストのアップロードをリクエストする場合は http 形式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。