綾小路龍之介の素人思考

ホスト対ローカルがホスト対ホストになると改行コードはどう考える?

ローカルで作った Web ページをホストにアップロードすることをよくやる。このとき僕らは転送モード切り替えを自動にしていることが多い。前述のように、ローカルとホストの改行コードが異なっているからだ。では、ホスト対ホストの場合はどうだろう。例えばホスト A が Unix でローカルが Windows でホスト B が Unix の場合を考えてみよう。ローカルでファイル内容の書き換えを行わない限り、わざわざ自動モード切り替え機能はオフにしたほうがいいと思う。なぜならホスト同士は同じ改行コードを採用しているから。もっと言えば、文字コード切り替えや半角かなを全角かなに書き換える機能もオフにしたほうがいい。なぜならミラーサイトを作るうえで余分な機能は必要ないから。

上で述べたような機能は結局転送されてきた内容や転送する内容をチェックしているわけだから余分な負荷をかけることになる。話を戻して、OS と改行コードの相対表は下のようなものである。ascii モードとはこれらの改行コードの相互変換を行ってアップロードやダウンロードするのだ。つまりファイルが使われる環境のもとでしかるべき改行コードが守れていれば問題は無いのである。では、ホスト間で同じ OS を使っている場合は、ワンクッションおいてローカルへのダウンロード作業を含めるとしても、バイナリモードでダウンロードとアップロードを行えばよいということになる。これはローカルでファイルの編集作業を行わないならばの話である。

つまり、ホスト A が Web ページの公開ファイルを直接編集できるサービスを提供していて、管理者は Web ページの編集をこのサービスを通して行う。管理者は別のミラーサイトであるホスト B にも全く同じデータをおきたい。管理者のコンピュータもしくはサーバ上で上のようなスクリプトを起動させてミラーリングを行う。このようなニーズにこたえることができる。

改行コード
RemoteHostRemote 改行コードHost 改行コード
MacMacCRCR
MacWinCRCR+LF
MacUnixCRLF
WinMacCR+LFCR
WinWinCR+LFCR+LF
WinUnixCR+LFLF
UnixMacLFCR
UnixWinLFCR+LF
UnixUnixLFLF
+--------+  Write  +----------------+         +--------+
|        |<--------|                |         |        |
| Host A |         | Author Machine |         | Host B |
|        |-------->|                |-------->|        |
+--------+   Get   +----------------+   Put   +--------+
+--------+        Write         +-----------+                      +--------+
|        |XX<-----------------XX|  Author   |                      |        |
| Host A |                      |  Machine  |                      | Host B |
|        |21<-----------------BB|           |AA----------------->21|        |
|        |    Get index.html    |           |    Put index.html    |        |
|        |                      |+---------+|                      |        |
|        |                      || Port    ||                      |        |
|        |20----------------->CC|| Forward ||FF----------------->20|        |
|        |      index.html      || Deamon  ||      index.html      |        |
|        |                      |+---------+|                      |        |
+--------+                      +-----------+                      +--------+

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-12-14T09:32:26+09:00
  2. Modified: 2008-12-14T07:37:36+09:00
  3. Generated: 2017-02-16T23:09:32+09:00