IPを中心に、ネットワーク技術の説明。情報処理試験やベンダ試験対策に。ネスペ解説、技術動向解説。
- 最新号:2008-08-25
- 発行周期:週刊
- 読んでる人:1985人
- 創刊日:2001-04-30
- Score!:100点
- コメント数 : 4
- メルマガID:36790
- バックナンバー:全て公開
- 発行者サイト:あり
- >> 月間ランキング
[ IP Network Skill - No. 0337 - ] HTTPメッセージボディ
発行日: 2007/11/16‥‥……━━━━━━ IP Network Skill No. 00000337 ━━━━━━……‥‥
〜 HTTP その10 HTTPメッセージボディ 〜
‥‥……━━━━━━━━━━━━━━━━━━━━━━━━━━━━……‥‥
【まえがき】
技術評論社より11月18日発売予定のSoftware Design 12月号
でオープンソースのIP-PBXソフトを特集しており、その一部
として「VoIPの基礎知識」を執筆させていただきました。
VoIPの歴史やH.323, SIPについて紹介しています。
ご興味ある方は是非ご覧ください。
さて、年賀状を考える季節になってきました。
欠礼状(喪中はがき)が届き始めました。
最近はメールで年賀状を済ませてしまう傾向にあるので、
はがきの年賀状を準備したり、実際に受け取る数が10年、
20年前よりだいぶ少なくなりました。
その間、個人情報保護法の制定などがあり、年賀状などは
個人情報のオンパレードでその取り扱いも注意しないと
いけないな、など考えてしまいます。
また、ITリテラシの高くない人でも、最近はパソコンで
年賀状を作成することが多いです。
私の家族もそうで、データベースをある年賀状ソフトで
管理していたのですが、今年実家のPCが調子悪くなった
ため、新しいPCに換えてデータを移行しました。
ところがソフトのインストールまで古いPCとまったく同じ
にしていなかったり、かれこれ10年ほど使ったPCなので
昔のソフトが現在も入手できるか不明であるということ
から、これまでのデータベースが使えず、また手入力し
直さなければならなくなりそうだ、とのことです。
(あとがきに続く)
╋━━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━━━━━━━━━━……‥‥
┃本┃日┃の┃試┃験┃対┃策┃問┃題┃
╋━━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━━━━━━━━━━……‥‥
〔問題1〕HTTP/1.1のcontent-codingとして規定される圧縮コーディング
のうち、誤っているものはどれか。
1.bzip
2.deflate
3.gzip
4.compress
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ネ┃ッ┃ト┃ワ┃ー┃ク┃の┃基┃礎┃講┃座┃
━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛
-----------------------------------------------------------------
この企画は処女作「TCP/IPネットワークステップアップラーニング」
http://www.Amazon.co.jp/exec/obidos/ASIN/4774116351/ipnetworksk01-22
を基に構成変更、加筆、修正、省略。。。いろいろ手を加えたものです。
TCP/IPネットワークステップアップラーニングは第3刷を重ねました!
講習教科書などでご利用いただいています。
-----------------------------------------------------------------
【11.アプリケーションプロトコル】
11.14. HTTP
11.14.6. HTTPメッセージボディ
11.14.6.1. HTTPメッセージ
HTTPメッセージには、クライアントからサーバへのリクエストメッセージと
サーバからクライアントへのレスポンスメッセージの2種類があります。
各メッセージのフォーマットは以下で定義されます。
generic-message = start-line
*(message-header CRLF)
CRLF
[ message-body ]
start-line = Request-Line | Status-Line
start-lineは開始行、*(message-header CRLF)の*が0文字以上の文字列
を示し、CRLFは改行コードを表します。つまりメッセージヘッダが何も
ないか、ある場合は改行で終わる、ということです。
メッセージヘッダの次はCRLFで、改行だけの1行が続きます。
次がmessage-bodyで、ここにメッセージボディが入ります。
start-lineはリクエストラインかステータスラインのいずれかとなります。
11.14.6.2. エンティティボディ
HTTPではエンティティボディ(entity body)という言葉が出てきます。
これはHTTPメッセージのペイロードのことです。
メッセージボディという言葉もありますが、これはHTTPメッセージとして
意味のある一つのアプリケーションデータを指します。
HTTPではメッセージボディを複数のHTTPメッセージに分割して送る事もあり、
その場合1つ1つのメッセージ内容をエンティティボディと呼びます。
11.14.6.3. content-coding
content-codingはAccept-EncodingヘッダとContent-Encodingヘッダで使われ
る値で、HTTPデータ(エンティティ)がどのようなフォーマットであるかを
表します。
具体的には gzip、compress、deflateという圧縮フォーマットとidentity
という圧縮を行わないという値があります。
11.14.6.4. transfer-coding
HTTP/1.1ではChunked Transfer Coding(チャンク形式転送コーディング)が
規定されています。これはエンティティボディを一定のブロック(チャンク)
に分割し、ブロックサイズをヘッダに記述する方式です。
transfer-codingはTEヘッダとTranfer-Encodingヘッダで使われます。
分割されたデータをChunked-Bodyと呼び、1つ以上のブロックとトレーラ
(trailer;終端データ)から成ります。(トレーラの後にはCRLF改行コードが
入る。)
各ブロック(チャンク)はチャンクサイズ(長さ)とチャンクデータで構成
されます。
11.14.6.5. media-type
media-typeはHTTPでどのようなデータを送るかを表すものです。
Content-TypeヘッダとAcceptヘッダで使われます。
media-typeはタイプとサブタイプの組み合わせで表現され、HTMLファイルで
あれば "text/html" となります。textがタイプで、htmlがサブタイプです。
主なタイプとしては以下があります。
text(テキストファイル), image(画像), audio(音声),video(動画),
application(バイナリファイル)
media-typeの詳細はIANAのWebサイトに記載されています。
http://www.iana.org/assignments/media-types/
11.14.6.6. マルチパート
HTTPではマルチパートを使う事ができます。マルチパートとは、電子メールで
使われるMIME(Multipurpose Internet Mail Extensions)の拡張仕様で、1つ
のメールボディに複数のファイルなどを載せる事ができます。
media-typeとしてmultipartが使われ、この中に複数の異なるmedia-typeのデー
タが入りますが、各データはboundary(境界)パラメータで分割されます。
RFC1867に以下の例がありますが、この場合boundaryパラメータはAaB03xで、
各境界で "--AaB03x" と 先頭に--を付け、最後の境界では "--AaB03x--" と
先頭と最後に--を追加します。
Content-type: multipart/form-data, boundary=AaB03x
--AaB03x
content-disposition: form-data; name="field1"
Joe Blow
--AaB03x
content-disposition: form-data; name="pics"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
11.14.6.7. range-unit
HTTPではGETメソッドを使って、WebサーバからWebページやWebコンテンツを
取得できますが、バイト単位で部分的なコンテンツを取得することもできます。
range-unitというパラメータでその範囲を指定します。
range-unitはRangeヘッダとContent-Rangeヘッダで使われます。
range-unitの単位はバイトです。
たとえば、 "bytes=0-499" はデータの最初の500バイトを取得する、という
ことになります。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
かんたんネットワーク入門
http://www.amazon.co.jp/exec/obidos/ASIN/477412124X/ipnetworksk01-22
私のもう一冊の著書です。先日新宿の紀伊国屋に行ったら、平積み
されていました、うれしかったです。
ネットワーク入門の絵本で、初心者の方を中心に好評を得ています。
新入社員やネットワークを扱う企業のバックオフィスの方々(営業や
SEではなく、庶務、総務、アドミニストレータの方々)に自分の会社
で扱っている製品やネットワークの基礎知識を持ってもらうのにも
よい入門書です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
解┃答┃と┃解┃説┃
━┛━┛━┛━┛━┛
《本日の試験対策問題》
(解答)1
(解説)
gzipはRFC1952で規定されるgzip (GNU zip) というファイル圧縮
プログラムで生成される32ビットCRC付きフォーマットです。
compressはUNIXのcompress圧縮プログラムで生成されるフォーマット
です。
deflateはRFC1951で規定されるdeflate圧縮とRFC1950で規定される
zlibフォーマットが組み合わさったものです。
bzipはbzipファイル圧縮ソフトで使われる圧縮方式で、gzipより圧縮
率が若干高いですが処理に時間がかかります。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆◆◆◆◆◆ ┃ あとがき ┃ ◆◆◆◆◆◆
(まえがきから続く)
年賀状ソフトなど独自フォーマットの住所録や画像データ
を使うことが多いと思いますが、住所録ならCSV形式や
テキスト形式、画像データであれば bmp, jpeg や Adobe系の
フォーマットへもエクスポートしておく、といったことが
必要かもしれません。
利用しやすいソフトウェアはありがたいですが、そのソフトが
将来使えなくなってしまった事のことも考えたほうがよさそう
です。
音楽データでも同じ事がいえるかもしれません。
レンタル店でCDを借りて、個人で楽しむために録音メディアに
複製するとき、メディアとしてカセットテープ、MD、CD-R、
そして現在ではPC内のハードディスクかiPodなどのMP3プレーヤ
内のメモリに収まっています。
同じ曲を、再生機器を変えるたびに異なるメディアに録音しな
おしていました。
PCアプリのファイルも、大切なものは長期に渡って利用できる
ように、陳腐化しないフォーマットで保存しておくことが大切
だと思いました。
adzuki
………………………………………………………
IP Network Skill vol.000337 11/16/07
発行者:adzuki http://www.xai.nu/ipnet
…………… ipnet7@xai.nu ……
◎ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄◎
| 新規購読・購読解除・バックナンバー ⇒ http://www.xai.nu/ipnet
| IP Network Skill 掲示板
| ⇒ http://www.xai.nu/cgibin/ipnet/bbs.cgi
| バックナンバー一覧
| ⇒ http://xai.nu/ipnet/stack/index.html
| 間違いご指摘
| ⇒ メルマガにコメントを添えて返信ください。
◎_________________________________◎
このメルマガを読んでいる人はこんなメルマガも読んでいます
- のんびりやろう!情報処理試験! 〜1問1問コツコツと〜
- ソフトウェア開発&基本情報技術者試験対策を中心に初級シスアドや高度区分まで幅広く対応。流行のIT用語の解説も行っているので,パソコンについて勉強した...
- Office & VBA パーフェクトマスター
- Excel・Access・Word等の今さら聞けない「疑問」、今すぐ知りたい「困った」、たちまち解決!のmoug(モーグ)がお送りする、関数初心者か...
- ネットワークのおべんきょしませんか?
- TCP/IPってなに?LANって?ルータって何をするの?というネットワークに関することをわかりやすく解説します。情報処理の試験を受ける方にもぴったり...
- 全部フリーソフト!!
- ネット上にはこんなに便利なフリーソフトがいっぱい。お金なんか使わなくても、あると絶対にお得で楽しいソフトを1つずつご紹介します。
- IPネットワーク考
- インターネットのネットワークSEの実務者が、IPネットワークにまつわる話題、問題、技術について実務者ならではの視点から解説します。ネットワーク、TC...
![メルマガスタンド[メルマ!]](/img/common/backnumber_article/melma_logo.gif)


