人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

テキスト・エディターで書いたhtmlのファイルが、ブラウザーに読み込まれるまでの間、いったんバイナリー(0と1)のデータ)に変換されているのでしょうか? <HTMLのファイル>→<01...>→<ブラウザーの表示>

●質問者: torimaki
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Sampo

ちょっと漠然とした質問でどう答えるか迷いますが、大筋正しい内容をお考えのように思います。

まずバイナリーという言葉をここで使うのはやめておきましょう。意味が広すぎます。

HTMLファイル(ストリーム)をブラウザが解釈して画面表示にするまでの流れはこう理解しましょう。

ファイルにはHTMLが記述されていますが、それは文字体系を何かしらのルールで記号化して並べてあります。「文字体系」のことは一般的に「キャラクタセット」といい、英語用の文字を表すASCII、英語・日本語の文字を表すJIS、世界中の文字を表すUnicodeなどあります。それを記号化する「何かしらのルール」を「エンコーディング」といい、UnicodeのエンコーディングにはUTF8,UTF16,UTF32などあります。JIS用のエンコーディングにはシフトJIS、EUC、ISO-2022-JPなどあります。ここら辺のキーワードは、聞いたことありますか?

まず、ブラウザはHTMLがどんな文字体系をどんなエンコーディングで構成されたものか識別して、そのルールに従って読み取らないといけません。そうして読まれた文字データはメモリ上で内部的な形式で格納されます(この時点で、ご質問の「バイナリ」だと言っていいかもしれません)。

読み取られた文字データはHTMLの文法に従って解釈されます。解釈の結果、要素が入れ子の階層になっているデータ構造としてメモリ上に展開されます(これも、ご質問の「バイナリ」に相当するでしょうか)。

要素の階層構造データは、HTMLの表示ルールに従って画面上で占める位置や大きさ・姿が決定され、実際に画面上に描画されます。

こういったデータ処理ですが、ご質問の「バイナリ」のイメージと比べてどうでしょうかね。


2 ● sibazyun
ベストアンサー

NO.1 のであっているのですが、もしまだピンとこないようでしたら。。。

文字コードというのがあり、NO.1にあるようにいろいろ規格はありますが、
まずは半角のA(大文字)なら バイナリー(2進数)表記で、01000001、
a(小文字)なら 01100001 になっています。

ということは、キーボードで a を押したら、キーボードからパソコンへの
ケーブルでは01100001が伝わり、メモリに入り、そのメモリの内容をエディタ
画面に出す際に、スクリーンへ01100001が伝わって、画面上で a が出ます。
エディタの内容をファイルに記録させると、しかるべき位置に01100001が
はいっています。たとえば なら <もaも> もそのようになっています。

ただ、HTMLを処理する機構も(あるいはエディタで文字を追加したり
削除したりする仕組みも)そこにあるバイナリデータは文字コードだと
おもっています。ですから、たとえば、
という3文字がきたら、どう扱う、
<h>という3文字がきたら、どう扱う、何もないときのaは文字として扱う、
といった処理は、いわばバイナリーかどうかというよりは、文字コードが
どうかでもって処理しているといってよいでしょう。
そして、さらに、たとえば同じaでも、太字で、イタリックでという指示
がくると、フォントのセットから、太字のイタリックのaを選べという指示が
これもバイナリーのある種のコードで伝えられ、それによって、「太字の
イタリックのa」が表示させられる、ということになります。


=== 修正文 ===
NO.1 のであっているのですが、もしまだピンとこないようでしたら。。。

文字コードというのがあり、NO.1にあるようにいろいろ規格はありますが、
まずは半角のA(大文字)なら バイナリー(2進数)表記で、01000001、
a(小文字)なら 01100001 になっています。

ということは、キーボードで a を押したら、キーボードからパソコンへの
ケーブルでは01100001が伝わり、メモリに入り、そのメモリの内容をエディタ
画面に出す際に、スクリーンへ01100001が伝わって、画面上で a が出ます。
エディタの内容をファイルに記録させると、しかるべき位置に01100001が
はいっています。たとえば < a > なら < も a も > もそのようになっています。

ただ、HTMLを処理する機構も(あるいはエディタで文字を追加したり
削除したりする仕組みも)そこにあるバイナリデータは文字コードだと
おもっています。ですから、たとえば、 < a > という3文字がきたら、どう扱う、
<h>という3文字がきたら、どう扱う、何もないときのaは文字として扱う、
といった処理は、いわばバイナリーかどうかというよりは、文字コードが
どうかでもって処理しているといってよいでしょう。
そして、さらに、たとえば同じaでも、太字で、イタリックでという指示
がくると、フォントのセットから、太字のイタリックのaを選べという指示が
これもバイナリーのある種のコードで伝えられ、それによって、「太字の
イタリックのa」が表示させられる、ということになります。


sibazyunさんのコメント
最初に示した文が、少しおかしく、また文字も後半が青くなっていたので、修正した ものを下に示しました。 あえて2つ残したのは、ここの話にも関係しているからです。はじめ、回答を 打ち込むときに < と a と > とを続けて書いたら、エディターではそのように 見えました。 ところが、この「はてな」の表示画面は、htmlそのものではないものの、 似た仕組みで文字を表示したり、htmlの制御コードで制御したりするように なっていて、< a > (を続けて書くと)htmlの仕組みで、参照の始まりとなり、 < a > (を続けて書いた)文字列そのものは表示されず、その後が青くなりました。 そこで、===修正=== という文字列の前に、エディターで、< / a > を続けて 書いて、影響を消してから、今度は わざと < a > を離して書きました。よって、はてなのブラウザはhtml制御コードとは見ずに、単なる文字列として表示しています。

torimakiさんのコメント
了解しました。ご丁寧にありがとうございます。便乗して、違う質問をすることを、ご容赦ください。ほんらい、御回答に対してのコメントは、当枠(御回答のすぐ下の枠)に書き込んでいるのですが。今回、両名にお送りする、ということで、画面下の「コメントを書く」に書いております。その際も、メールで、両名に知らせは、ちゃんと届いているものでしょうか。また当枠にコメントを書くことと、「コメントを書く」の使い分けについて、アドバイスがありましたら、是非!

sibazyunさんのコメント
とりあえず、「コメントは届いた」とお答えします。

torimakiさんのコメント
お手数をおかけしました。感じが分かりました! ありがとうございます。

3 ● SPX900

テキストの場合は本当に至って単純に、1文字1文字がそれに対応する文字コードのバイナリデータに1対1で変換されるだけです。HTMLは、そのデータの並びの約束事を定義するものの一種で、その約束に従ってブラウザが表示しています。約束事はこれ一つではないので、違ったソフトが違った約束事に従って動作することも当然あります。ただ、テキストを使う約束事は人間が見て多少なりとも解りやすくしようという努力は払われているため、式や文章みたいな形になっていますね。

この約束事に従わなければ、期待通りに表示されませんし、テキストデータにおける最も基本の約束事、文字コードが不明になるとそれは文字化けとなります。

とっても根本的な話をすると、コンピュータには全てのデータはバイナリとして見えています。バイナリデータの並びに約束事を与えて、テキストにしたり音楽にしたり画像にしたりしているだけなんです。だからコンピュータがその約束事を知らない場合、バイナリはただのビット列に過ぎません。アプリというものは、一見ただのビット列に見えるけど、実はある約束事に従っているデータの扱い方をコンピュータに指示するものでもあるわけです。


torimakiさんのコメント
文字に対して、一つひとつ文字コードが対応していて、さらにはバイナリーデータに変換されているということですね。そのへんはイメージできます。ありがとうございまーす。

sibazyunさんのコメント
下のコメントでも書きましたが、「さらには」というより、文字に対して、一つひとつ バイナリ(2進数)で定義された文字コードが対応している、ということです。

torimakiさんのコメント
コメント、ありがとうございます。たとえば、Aの場合、A→65(整数値)→01000001(2進数)ではなく、A→01000001というイメージでしょうか。

sibazyunさんのコメント
そう、Aというキー→01000001です。この0と1だけの数値の並びを人は覚えにくいから、「65」とか「六十五」とか「sixty five」といいかえているのです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ