プロトコル?

[上に] [前に] [次に]
kyu 2000/04/05(水) 10:19:20
httpやftpやsocksなどは通信プロトコルっていうことは
わかるのですが、ブラウザで例えば
file://c:\フォルダ名\ファイル名
や、
file:///c|/フォルダ名/ファイル名
ってやってもローカルのファイルに
アクセスできますよね。
この「file://」っていうのも
プロトコルの一種に入るのでしょうか?
っていうか、なんなのでしょう?

なはは 2000/04/05(水) 10:28:55
xxx://のxxxはプロトコルではなく、スキームといいます。別物です。

H&A 2000/04/05(水) 10:31:02
> この「file://」っていうのも
> プロトコルの一種に入るのでしょうか?

正確には、"file" というのは URI の「スキーム」と呼ばれるものです。
URI (Uniform Resource Indicator、URL よりちょっと広い概念ですが同様のものと考えていただいて構いません) では、アクセスできるリソースを指し示すときに「どのような方法でアクセスするか」と「その方法ごとに、どう指定すればリソースにたどり着けるのか」をそれぞれ指定します。
スキームというのは、前者の「どのような方法でアクセスするのか」に相当します。この場合、「リソースはローカルなマシンの中にファイルとしてあります」ということです。

リソースによっては通信を行わないものもあるので、プロトコルというとちょっと語弊があるかもしれません(広義の Protocol は手続きを意味しますが、狭義には通信手続きの意味になります)。

H&A 2000/04/05(水) 10:42:17
> リソースによっては通信を行わないものもあるので、プロトコルというとちょっと語弊があるかもしれません

通信を行っていても、必ずしもスキームと1対1の対応があるわけではありませんね。
ということで、「スキームとプロトコルには直接の関係はありません」と訂正します。

kyu 2000/04/05(水) 14:31:11
なるほどー。
スキームか...。ってしらないけど。
ちなみに後でちょっと調べたら以前は
URL(Uniform Resource Locator)と呼んでいたものが、
HTML4.0から URIと呼ぶようになったようですね。

>スキームというのは、前者の「どのような方法でアクセスするのか」に相当します。

その方法の情報を持っているのはブラウザになるのでしょうか?
それともPCが元々持っているのでしょうか?

H&A 2000/04/05(水) 14:39:54
> ちなみに後でちょっと調べたら以前は
> URL(Uniform Resource Locator)と呼んでいたものが、
> HTML4.0から URIと呼ぶようになったようですね。

もちろんですが、変更点は「呼び方」だけではありません。
詳しくは RFC2396 や http://www.w3.org/Addressing/ などをご覧ください。

> その方法の情報を持っているのはブラウザになるのでしょうか?

スキームごとのアクセス方法を決定するのはユーザエージェント(ブラウザ)になります。

H&A 2000/04/05(水) 14:41:52
追加です。
現在 IANA に登録しているスキームの一覧は、http://www.isi.edu/in-notes/iana/assignments/url-schemes にあります。こちらもあわせて参照ください。

kyu 2000/04/05(水) 15:18:38
H&Aさん情報ありがとうございます。参考になりました。

それとやっぱり後で思ったんだけど
httpってHypertext Transfer Protocolでしょ?
ftpってFile Transfer Protocolでしょ?

なまえにちゃんとプロトコルって書いてあるのに
プロトコルではないの?
httpはプロトコルの一種で、
http://ってかくとスキームを指してることになると
解釈していいのですか?

それと、http://www.isi.edu/in-notes/iana/assignments/url-schemes 見ました。
いきなり「【URL】 SCHEMES」と書いてありました。その他
多くの個所にURLと...
しかし「URIのスキームだ」と上の方のレスで教わったし。
でも、そのページの下のほうのRFC2396では「URIに変わった」
みたいなことも書いてあったけど...

ユーザエージェントですね。ブラウザをこう表現されるのは
始めてなんですけどなんかかっこいい言い方
ですね。使わせていただきます。

H&A 2000/04/05(水) 15:28:34
> なまえにちゃんとプロトコルって書いてあるのに
> プロトコルではないの?

そうですね。
HTTP や FTP は、URI のスキームも http/ftp ですし、1対1対応していますね。
しかし、mailto:someone@somewhere.com などは「someone@somewhere.com に電子メールでアクセス」というだけで、通信プロトコルとは直接対応していません。

# まぁ、結果的に SMTP になることはほぼ間違いありませんが

> httpはプロトコルの一種で、
> http://ってかくとスキームを指してることになると

細かく言うと、"http://〜/" の "http" の部分がスキームです。":" は、スキームと他の部分との区切り子です。

> 多くの個所にURLと...

URI と URL の関係は、「URL + URN = URI」と覚えていただくとわかりやすいかもしれません。
URN (Uniform Resource Names, RFC2141 に文法があります) はスキームに必ず "urn" を用いますので、それ以外のスキームについては URI と URL は同じです。

> ユーザエージェントですね。ブラウザをこう表現されるのは
> 始めてなんですけどなんかかっこいい言い方
> ですね。使わせていただきます。

一般的には「ブラウザ」で構わないと思います。
ユーザエージェントと書いたのは、検索エンジンなどの「ブラウザとは呼べない WWW クライアント」も範囲に入れたかったからです。

ヒソカ 2000/04/05(水) 15:30:09
ブラウザとユーザーエージェントはイコールじゃないんだけどなー。
和訳してみ?

H&A 2000/04/05(水) 15:31:24
> ブラウザとユーザーエージェントはイコールじゃないんだけどなー。

そのとおりですね。
間違っておりました。申し訳ありません。

kyu 2000/04/05(水) 15:49:38
[[解決]]
なんか普段「ブラウザ」使ってて意識しないないところの
話しだったけど、奥が深い―。

ってことで解決とします。

H&A 2000/04/05(水) 15:57:46
[解決] されていますが、少しだけ。
HTML 4.01 Spec. では、ユーザエージェントの定義を

HTML user agent
An HTML user agent is any device that interprets HTML documents. User agents include visual browsers (text-only and graphical), non-visual browsers (audio, Braille), search robots, proxies, etc.

としています (http://www.w3.org/TR/1999/REC-html401-19991224/conform.html)。
つまり、ユーザエージェント (HTML ユーザエージェント) は WWW ブラウザにロボットやプロクシを加えたものですね。

[上に] [前に] [次に]