0

GET リクエストを使用して、画像やテキストなど、私が推測しているものを取得できます。指定する必要はありませんContent-type

このデータはビット レベルでどのように見えますか? HTTP パケットの 1 と 0 を見ている場合、ここに何を入れることができるかは、どの仕様によって決まります。

クライアントを使用して、ajax GET 経由でデータを送受信すると、データはパケット内の 1 と 0 に直接転送されますか、それとも何らかの変換がありますか?

例えば:

xhr = new win.XMLHttpRequest();
xhr.open('GET', config_ajax.url, true);
xhr.onload = function () {
    if (this.status === 200) {
        config_ajax.callback(xhr.responseText);
    }
};
xhr.send(send);

// example data

send = "0xFF";
xhr.responseText = "0x0A" 

ビット ストリームを分析している場合、11111111送受信が行われていることがわかりますか?00001010

4

1 に答える 1

1

Content-type を指定する必要はないと思います。このデータはビット レベルでどのように見えますか? HTTP パケットの 1 と 0 を見ている場合、ここに何を入れることができるかは、どの仕様によって決まります。

HTTP 仕様自体、セクション 7を探しています。実際、あなたが想定したように機能します:

7 実体

リクエスト メソッドまたはレスポンス ステータス コードによって制限されていない限り、リクエストおよびレスポンス メッセージはエンティティを転送してもよい[MAY]。エンティティは、エンティティ ヘッダー フィールドとエンティティ ボディで構成されますが、一部の応答にはエンティティ ヘッダーのみが含まれます。

このセクションでは、エンティティの送信者と受信者に応じて、送信者と受信者の両方がクライアントまたはサーバーのいずれかを指します。

このセクションでは、エンティティの送信者と受信者に応じて、送信者と受信者の両方がクライアントまたはサーバーのいずれかを指します。

7.1 エンティティヘッダーフィールド

エンティティ ヘッダー フィールドは、エンティティ ボディに関するメタ情報を定義します。ボディが存在しない場合は、リクエストによって識別されるリソースに関するメタ情報を定義します。このメタ情報の一部はオプションです。一部は、この仕様の一部によって必要とされる場合があります。

   entity-header  = Allow                    ; Section 14.7
                  | Content-Encoding         ; Section 14.11
                  | Content-Language         ; Section 14.12
                  | Content-Length           ; Section 14.13
                  | Content-Location         ; Section 14.14
                  | Content-MD5              ; Section 14.15
                  | Content-Range            ; Section 14.16
                  | Content-Type             ; Section 14.17
                  | Expires                  ; Section 14.21
                  | Last-Modified            ; Section 14.29
                  | extension-header

   extension-header = message-header

拡張ヘッダー メカニズムにより、プロトコルを変更せずに追加のエンティティ ヘッダー フィールドを定義できますが、これらのフィールドを受信者が認識できると想定することはできません。認識されていないヘッダー フィールドは、受信者によって無視されるべきであり、透過的なプロキシによって転送されなければなりません (SHOULD)。

7.2 エンティティ本体

HTTP 要求または応答で送信されるエンティティ ボディ (存在する場合) は、エンティティ ヘッダー フィールドで定義された形式とエンコーディングです。

   entity-body = *OCTET

セクション 4.3 で説明されているように、エンティティ ボディは、メッセージ ボディが存在する場合にのみメッセージに存在します。エンティティ本体は、メッセージの安全で適切な転送を保証するために適用された可能性のある Transfer-Encoding をデコードすることによって、メッセージ本体から取得されます。

7.2.1 タイプ

エンティティ本体がメッセージに含まれている場合、その本体のデータ型は、ヘッダー フィールドの Content-Type および Content-Encoding によって決定されます。これらは、2 層の順序付けられたエンコーディング モデルを定義します。

   entity-body := Content-Encoding( Content-Type( data ) )

Content-Type は、基になるデータのメディア タイプを指定します。Content-Encoding は、要求されたリソースのプロパティである、通常はデータ圧縮の目的で、データに適用される追加のコンテンツ コーディングを示すために使用できます。デフォルトのエンコーディングはありません。

エンティティ本体を含む HTTP/1.1 メッセージには、その本体のメディア タイプを定義する Content-Type ヘッダー フィールドを含める必要があります。メディア タイプが Content-Type フィールドで指定されていない場合に限り、受信者は、リソースの識別に使用される URI のコンテンツおよび/または拡張子の検査を介してメディア タイプを推測しようとしてもよい (MAY)。メディア タイプが不明のままである場合、受信者はそれを「アプリケーション/オクテット ストリーム」タイプとして扱う必要があります (SHOULD)。

7.2.2 エンティティの長さ

メッセージのエンティティ長は、転送コーディングが適用される前のメッセージ本文の長さです。セクション 4.4 では、メッセージ本文の転送長を決定する方法を定義しています。

于 2013-09-26T14:17:04.113 に答える