アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTTPヘッダというのがあるそうですが、カプセル化について説明した図の多くはHTTPヘッダを表示していません。例えば、次のようなサイトの図です。
https://www.atmarkit.co.jp/ait/articles/0105/23/ …
http://etc9.hatenablog.com/entry/20110502/130444 …

HTTPヘッダは重要なヘッダだと思いますが、カプセル化の図の多くでは何故HTTPヘッダを表示しないのでしょうか。

A 回答 (4件)

かいつまむと


httpヘッダはパケット毎につかないから
です。

httpヘッダは(はてなの方のリンクの絵で言うところの)アプリケーション
データの一部だというのは理解されているのですよね?

httpサーバ等がデータを送る場合、
データにhttpヘッダなどをつけてOSに渡します。
渡されたものは「アプリケーションデータ」になりますが、
そのサイズが例えば5kbyte(5000byte)で、
MSS(Maximum Segment Size、意味は調べてみてください)が1460byteだとすると、
OSはそのサイズにアプリケーションデータを分割し、
それをパケットにして送ります。
つまり、合計4パケットを送るのですが、
httpヘッダは分割した4パケットの内の先頭のパケットの
アプリケーションデータにはありますが、
2番目以降のパケットにはありません。
上記が「httpヘッダはパケット毎につかないから」
の意味です。

なお、
これはTCPがシーケンス番号という仕組みを持ち、
データをストリームとして扱うから、
データストリームの先頭にアプリケーションヘッダをつけるからです。
UDPの場合はデータをデータグラムで扱うので、
基本的にパケット毎にアプリケーションヘッダが付きます。

以上、参考になりますでしょうか。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

>httpヘッダは(はてなの方のリンクの絵で言うところの)アプリケーション
>データの一部だというのは理解されているのですよね?

いえ、分かっていませんでした。

とてもよく分かりました。
ありがとうございました。

お礼日時:2019/08/05 18:21

#3の回答を図にしてみました

「HTTPヘッダを表示しない理由」の回答画像4
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

よく分かりました。

お礼日時:2019/08/05 18:21

カプセル化の話と、HTTPヘッダーの話は、切り離して考えた方が


よいです。

カプセル化ってのは、イーサーネット上に流れる電文を
★1500バイト単位に区切ってしまうことを言っています。

IEやChrome等のブラウザから、ホームページをアクセスすると、
様々なコンテンツが表示できますが、1回の表示で最低でも、
★何十キロバイトのデータが送られてきます。

例えば150キロのデータが送られてくるなら、
イーサーネット上では、
1500バイト×100パケット(カプセル)
に分割して送られてくるのです。

ご質問で指定されている説明では、その1カプセルが、どうなって
いるかの説明となっています。

それに対して、HTTPは、ホームページのコンテンツを送受信する
アプリケーションの1つのプロトコルで、先述の例でいけば、
150キロのデータ全部が送られて初めて、ブラウザの画面が表示されたり、
操作できたりするようになるものです。

このアプリケーションには、他にも、メール送受信のためのsmtpやpop、
ftp、その他にも様々なプリケーションが存在します。
https://ja.wikipedia.org/wiki/TCP%E3%82%84UDP%E3 …

アプリケーションの一部のhttpヘッダだけの話を入れると、
カプセル化の話とは離れた話題となり、広がり過ぎてしまうので、
ここでは、アプリケーションデータとして別にしているのです。

いかがでしょうか?
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

よく分かりました。

お礼日時:2019/08/05 17:51

HTTPヘッダーがその図でいえば、アプリケーションデータの中に含まれるデータだから(のはず)

    • good
    • 1
この回答へのお礼

ご回答いただきありがとうございます。

よく分かりました。

お礼日時:2019/08/05 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!