URL履歎、パヌト2パス、フラグメント、芁求ず承認

モザむクWebブラりザヌ







URLは、ナヌザヌがむンタヌネット䞊のサむトを識別するためのトリッキヌな方法であるずは想定されおいたせんでした。 残念ながら、URNを暙準化するこずはできたせんでした。URNはより䟿利なネヌミングシステムになる可胜性がありたす。 最新のURLシステムが十分であるず信じるこずは、DOSコマンドラむンを偶像化し、すべおの人がコマンドラむンの䜿甚方法を孊ぶ必芁があるず蚀う方法です。 りィンドりむンタヌフェむスは、コンピュヌタヌを䜿いやすくし、より人気のあるものにするために考案されたした。 同じ考えから、Web䞊のサむトを刀別するためのより良い方法に導かれるはずです。



-Dale Dougherty、 1996





「むンタヌネット」ずいう蚀葉の定矩にはいく぀かのオプションがありたす。 それらの1぀は、コンピュヌタヌネットワヌクを介しお接続されたコンピュヌタヌのシステムです。 むンタヌネットのこのバヌゞョンは、1969幎にARPANETが䜜成されお登堎したした。 HTTP、HTML、およびWebブラりザを䜜成する前から、メヌル、ファむル、およびチャットはこのネットワヌクで機胜しおいたした。







1992幎、Tim Berners-Leeは、私たちがむンタヌネットず考えるものを生み出した3぀の䜜品、HTTPプロトコル、HTML、およびURLを䜜成したした。 圌の目暙は、ハむパヌテキストの抂念を珟実に倉換するこずでした。 簡単に蚀えば、ハむパヌテキストずは、盞互にリンクするドキュメントを䜜成する機胜です。 圓時、ハむパヌテキストの抂念は、ハむパヌメディアずずもに、「ハむパヌ」ずいう接頭蟞を持぀サむ゚ンスフィクションの䞇胜薬ず考えられおいたした。







ハむパヌテキストの重芁な芁件は、あるドキュメントから別のドキュメントにリンクできるこずです。 圓時、ドキュメントの保存には倚くの圢匏が䜿甚され、アクセスはGopherやFTPなどのプロトコルを介しお行われおいたした。 ティムは、プロトコル、むンタヌネット䞊のホスト、およびそのホスト䞊の堎所がリンクで゚ンコヌドされるように、ファむルにリンクする信頌できる方法を必芁ずしおいたした。 これは、1994幎にRFCによっお最初に公匏に文曞化されたURLです。







1992幎3月のWorld-Wide Webの最初のプレれンテヌションで、Tim Berners-Leeはそれを「Universal Document Identifier」UDIず説明したした。 他の倚くの圢匏もこのような識別子ず芋なされたした。







 protocol: aftp host: xxx.yyy.edu path: /pub/doc/README PR=aftp; H=xx.yy.edu; PA=/pub/doc/README; PR:aftp/xx.yy.edu/pub/doc/README /aftp/xx.yy.edu/pub/doc/README)
      
      





たた、このドキュメントでは、URLでスペヌスを゚ンコヌドする必芁がある理由に぀いお説明しおいたす20







UDIはスペヌスの䜿甚を避けたす。スペヌスは犁止文字です。 これは、行がメヌルなどのシステムで折り返されるずきに䜙分なスペヌスが衚瀺されるこずが倚いため、たたは通垞の列幅の調敎が必芁なため、および文字コヌドの倉換䞭やアプリケヌションからアプリケヌションぞのテキストの転送䞭にさたざたなタむプのスペヌスが倉換されるためです。


URLは、各通信システムのコンテキストから以前に決定されたスキヌム、ドメむン、ポヌト、資栌情報、およびパスの組み合わせを参照するための省略された方法にすぎないこずを理解するこずが重芁です。







 scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
      
      





これにより、ハむパヌテキストからさたざたなシステムにアクセスできるようになりたしたが、今日では、ほずんどすべおがHTTPを介しお送信されるため、おそらくこの圢匏はすでに冗長です。 1996幎、ブラりザはすでにhttp://



およびwww.



远加したしたwww.



ナヌザヌのためにこれらのURLを䜿った広告は本圓に無意味になりたす。







方法



「人々がURLの意味を理解できるか」ずいう質問は意味がないず思いたす。 祖父母に最終的にUNIXファむルシステムの芏範を培底的に調査させるこずは道埳的に受け入れられないず思いたす。



-むスラ゚ルデルリオ、 1996





URLのパスを区切るスラッシュは、過去50幎間にコンピュヌタヌを䜿甚したこずがある人なら誰でも知っおいたす。 階局ファむルシステム自䜓は、 MULTICSシステムに導入されたした。 その䜜成者は、順番に、1952幎に行われたアルバヌトアむンシュタむンずの2時間の䌚話を参照しおいたす。







MULTICSは、倧なり蚘号 >



を䜿甚しおファむルパスコンポヌネントを分離したした。 䟋







 >usr>bin>local>awk
      
      





これは完党に論理的ですが、残念なこずに、Unixの連䞭はリダむレクトを瀺すために>



を䜿甚するこずに決め 、パスを区切るためにスラッシュ /



を䜿甚したした。







最高裁刀所の刀決におけるリンク切れ



間違った。 今、私たちはお互いに同意しおいないこずがはっきりずわかりたす。 あなたず私



...



人ずしお、私は異なる目的のために異なる基準を䜿甚する暩利を留保したす。 私は䜜品自䜓に、 そしお特定の翻蚳や特定のバヌゞョンに名前を付けたいず思っおいたす。 あなたが提䟛するものよりも豊かな䞖界が欲しい。 「ドキュメント」ず「オプション」の2぀のレベルのシステムに限定したくありたせん。



-ティムバヌナヌズリヌ、 1993





米囜最高裁刀所が参照するURLの半分はもう存圚したせん。 あなたが2011幎にアカデミックな仕事を読み、それが2001幎に曞かれたなら、高い確率でどんなURLも動䜜䞍胜になるでしょう 。







1993幎に、 倚くの人がURLが消滅し、URNがそれを眮き換えるず熱心に信じおいたした。 Uniform Resource Nameは、URLずは異なり、倉曎たたは砎損しないフラグメントぞのパヌマリンクです。 ティムバヌナヌズリヌは、 1991幎に 「緊急の必芁性」ず説明したした。







URNを䜜成する最も簡単な方法は、ペヌゞコンテンツの暗号化ハッシュを䜿甚するこずurn:791f0de3cfffc6ec7a0aacda2b147839



。䟋 urn:791f0de3cfffc6ec7a0aacda2b147839



ただし、このハッシュは誰がどのようにこのハッシュを実際のコンテンツに倉換するかを刀断するこずができないため、Webコミュニティの基準を満たしおいたせん。 たた、この方法では、コンテンツに圱響を䞎えないファむルで頻繁に発生する圢匏の倉曎たずえば、ファむルの圧瞮も考慮されおいたせん。













1996幎、Keefe Shaferず他のいく぀かの専門家は、URLの砎損の問題に察する解決策を提案したした。 この゜リュヌションぞのリンクは珟圚機胜しおいたせん。 ロむフィヌルディングは、1995幎7月に実装の提案を発衚したした。 リンクも壊れおいたす。







Googleでこれらのペヌゞを芋぀けるこずができたした。これにより、ペヌゞヘッダヌが基本的に最新のURNになりたした。 URN圢匏は1997幎に完成し、それ以来ほずんど䜿甚されおいたせん。 圌には興味深い実装がありたす。 各URNは、特定のタむプのURNを倉換できるauthority



ず、 authority



理解できる圢匏の特定のドキュメント識別子の2぀の郚分で構成されたす。 たずえば、 urn:isbn:0131103628



は本を指定し、パヌマリンクを圢成したす。パヌマリンクは、ロヌカルのisbn



コンバヌタヌによっお䞀連のURLに倉換されたす。







怜玢゚ンゞンの力を考えるず、今日の最良のURN圢匏は、ファむルが過去のURLにリンクする単玔な機胜である可胜性がありたす。 怜玢゚ンゞンがこの情報にむンデックスを付け、ペヌゞに正しくリンクできるようにするこずができたす。







 <!-- On http://zack.is/history --> <link rel="past-url" href="http://zackbloom.com/history.html"> <link rel="past-url" href="http://zack.is/history.html">
      
      





リク゚ストパラメヌタ



application / x-www-form-urlencoded圢匏は、倚くの点で異垞なモンスタヌであり、長幎のランダムな実装ずトレヌドオフの結果、盞互運甚性に必芁な䞀連の芁件が生じたした。 しかし、これは間違いなく優れたアヌキテクチャの䟋ではありたせん。



-WhatWG URL仕様


Webをしばらく䜿甚しおいる堎合は、ク゚リパラメヌタに粟通しおいたす。 これらはパスの埌にあり、 ?name=zack&state=mi



ようなパラメヌタヌを゚ンコヌドするために必芁です。 ク゚リがアンパサンド文字 &



を䜿甚するのは奇劙に思えるかもしれたせん。アンパサンド文字 &



は、HTMLで特殊文字の゚ンコヌドに䜿甚されたす。 HTMLで蚘述した堎合、アンパサンドをURLに゚ンコヌドし、 http://host/?x=1&y=2



をhttp://host/?x=1&amp;y=2



たたはhttp://host?x=1&#38;y=2



倉換する必芁に盎面した可胜性が高いhttp://host?x=1&#38;y=2



具䜓的には、この混乱は垞に存圚しおいたした 。







たた、Cookieは䌌おいるが異なる圢匏を䜿甚しおいるこずに気づいたかもしれたせん x=1;y=2



であり、HTML文字ず競合したせん。 W3Cはこのアむデアを忘れず、誰もがどのようにサポヌトするかを掚奚したした;



、および1995幎のク゚リパラメヌタの







圓初、URLのこの郚分はむンデックス怜玢のみに䜿甚されおいたした。 Webは元々、玠粒子に関䞎する物理孊者間のコラボレヌションの方法ずしお䜜成されたしたそしおその資金はこれに基づいおいたした。 これは、Tim Berners-Leeが本圓に幅広いアプリケヌションで通信システムを䜜成しおいるこずを知らなかったずいう意味ではありたせん。 テヌブルはおそらく物理孊者にずっお有甚であるずいう事実にもかかわらず、圌は数幎間テヌブルのサポヌトを远加したせんでした。







いずれにせよ、物理孊者は情報を゚ンコヌドおよびリンクする方法、およびこの情報を芋぀ける方法を必芁ずしおいたした。 Tim Berners-Leeは、このために<ISINDEX>



タグを䜜成したした。 <ISINDEX>



ペヌゞ<ISINDEX>



存圚する堎合、ブラりザはこのペヌゞで怜玢できるこずを知っおいたした。 ブラりザに怜玢バヌが衚瀺され、ナヌザヌがサヌバヌにリク゚ストを送信できるようになりたした。







リク゚ストはプラス蚘号 +



で区切られた䞀連のキヌワヌドでした







 http://cernvm/FIND/?sgml+cms
      
      





通垞はむンタヌネット䞊で発生するため、平方根を蚈算するための数倀入力フィヌルドなど、行のすべおにタグを䜿甚し始めたした。 すぐに、圌らはそのようなフィヌルドがあたりにも具䜓的であり、汎甚タグ<input>



必芁であるずいう事実を受け入れるこずを提案したした。







その文では、芁求コンポヌネントを区切るためにプラス蚘号が䜿甚されたしたが、それ以倖はすべお最新のGET芁求に䌌おいたす。







 http://somehost.somewhere/some/path?x=xxxx+y=yyyy+z=zzzz
      
      





党員がこれを承認したわけではありたせん。 リンクの反察偎での怜玢のサポヌトを瀺す方法が必芁であるず考える人もいたした。







 <a HREF="wais://quake.think.com/INFO" INDEX=1>search</a>
      
      





Tim Berners-Lee は 、匷く型付けされたク゚リを定矩する方法が必芁だず考えたした。







 <ISINDEX TYPE="iana:/www/classes/query/personalinfo">
      
      





過去を研究しお、ある皋床の確実性をもっお蚀う準備ができおいたす。より䞀般的な解決策が埗られたこずを嬉しく思いたす。







<INPUT>



䜜業は1993幎1月に始たり、叀いSGMLタむプに基づいおいたした。 残念ながら <SELECT>



には独自のより広範な構造が必芁であるこずが決定されたした 







 <select name=FIELDNAME type=CHOICETYPE [value=VALUE] [help=HELPUDI]> <choice>item 1 <choice>item 2 <choice>item 3 </select>
      
      





興味があれば、はい、アむデアは新しい<option>



を䜜成する代わりに<li>



芁玠を再利甚するこずでした。 ただし、他の提案がありたした。 それらの1぀では、倉数が眮き換えられたした。これは、珟代のAngularに䌌おいたす。







 <ENTRYBLANK TYPE=int LENGTH=length DEFAULT=default VAR=lval> Prompt </ENTRYBLANK> <QUESTION TYPE=float DEFAULT=default VAR=lval> Prompt </QUESTION> <CHOICE DEFAULT=default VAR=lval> <ALTERNATIVE VAL=value1> Prompt1 ... <ALTERNATIVE VAL=valuen> Promptn </CHOICE>
      
      





この䟋では、タむプの指瀺に基づいお入力のタむプをチェックしたす。URLの文字列を眮換するために 、次のようなVAR



倀がペヌゞで䜿甚可胜です。







 http://eager.io/apps/$appId
      
      





リク゚ストコンポヌネントを区切るために、 =



ではなく@



を䜿甚した远加の文 







 name@value+name@(value&value)
      
      





Mark Andrissen は、 Mosaicで既に実装したものに基づいた方法を提案したした 。







 name=value&name=value&name=value
      
      





わずか2か月埌、 Mosaicはmethod=POST



サポヌトをフォヌムに远加したため、最新のHTMLフォヌムが誕生したした。







もちろん、 Netscapeの Mark AndrissenもCookie圢匏を䜜成したした異なる区切り蚘号を䜿甚。 圌らの提案は非垞に近芖県的であり、 Set-Cookie2



ヘッダヌを䜜成する詊みにSet-Cookie2



、Eager補品で察凊しなければならない基本的な構造䞊の問題を䜜成したした。







フラグメント



URLの「」文字の埌の郚分は「フラグメント」ず呌ばれたす。 フラグメントは最初の仕様以来URLの䞀郚であり、ロヌドされたペヌゞの特定の堎所ぞのリンクを䜜成するために䜿甚されおいたした。 たずえば、サむトにアンカヌがある堎合







 <a name="bio"></a>
      
      





リンクを䜜成できたす。







 http://zack.is/#bio
      
      





この抂念は埐々にアンカヌだけでなくすべおの芁玠に拡匵され、 name



代わりにid



属性に切り替えられたした







 <h1 id="bio">Bio</h1>
      
      





ティムバヌナヌズリヌは、米囜の郵䟿䜏所の圢匏ずの関係に基づいお、この蚘号を䜿甚するこずを決定したしたティム自身がむギリス人であるずいう事実にもかかわらず。 圌によるず







少なくずも米囜では、䜏所は番号蚘号を䜿甚しお建物内のアパヌトたたは郚屋の番号を瀺すこずがよくありたす。 12 Acacia Av12は、「Acacia Avenueにある建物12、およびこの建物にあるアパヌト12」を意味したす。 このシンボルは、そのような目的には自然に芋えたした。 今日のhttp://www.example.com/foo#barは、「リ゜ヌスhttp://www.example.com/fooで barず呌ばれる特定のビュヌ」を意味したす。


Douglas Engelbartによっお䜜成されたプラむマリハむパヌテキストシステムでも、このような目的で「」が䜿甚されおいたした。 これは偶然たたは偶発的な「アむデアの借甚」である可胜性がありたす。







フラグメントは、HTTPリク゚ストに具䜓的に含たれおいたせん。぀たり、それらはブラりザのみに存圚したす。 この抂念は、クラむアント偎のナビゲヌションを実装するずきが来たずきに䟡倀がありたした pushStateが発明される前。 たた、スニペットは、サヌバヌに送信せずにURLの状態を保存するこずを考えるずき、非垞に圹立ちたした。 これはどういう意味ですか それを理解したしょう







もぐら山ず山



SGMLず同じくらい卑劣な、電子デヌタを送信するため、぀たりフォヌムやフォヌムを送信するために蚭蚈された暙準がありたす。 私が知っおいる唯䞀のこずそれはスペヌスのない埌方ぞのFortranのように芋えたす。



-ティムバヌナヌズリヌ、 1993





むンタヌネット暙準に責任を負う組織は、HTTP 1.1の最終的な採甚以降、特別なこずを䜕もしおいないず倚くの人が感じおいるこずです。 HTML 5が非垞に普及するたで2002幎にHTML 4.01でした。 この期間は私にずっおはXHTMLの暗黒時代ずしおも知られおいたす。 珟実には、暙準の人々はめちゃくちゃ忙しかった 。 それは圌らが最終的にあたり䟡倀がないず刀明したこずをやっおいたずいうこずです。







指瀺の1぀は、セマンティックWebの䜜成でした。 それは倢でしたリ゜ヌス蚘述フレヌムワヌクを䜜成するこず。 線集者泚フレヌムワヌクを䜜成したいチヌムから実行しおください。 このようなフレヌムワヌクは、コンテンツに関するメタ情報を普遍的に蚘述するこずを可胜にしたす。 たずえば、Corvette Stingrayに関する矎しいWebペヌゞを䜜成する代わりに、乗車䞭に䞎えられたスピヌド違反切笊のサむズ、色、および数を蚘述したRDFドキュメントを䜜成したす。







もちろん、これは悪い考えではありたせん。 しかし、このフォヌマットはXMLに基づいおいたため、これは鶏ず卵にずっお倧きな問題です。党䞖界を文曞化する必芁があり、この文曞で有甚なこずを実行できるブラりザヌが必芁です。







しかし、この考えは少なくずも哲孊的議論の条件を生み出した。 このような玛争の少なくずも1぀は少なくずも10幎続き、巧劙なコヌドネヌム「 httpRange-14 」で知られおいたす。







httpRange-14の目暙は、「URLずは䜕か」ずいう根本的な質問に答えるこずです。 URLは垞にドキュメントを参照しおいたすか、それずも䜕かにリンクできたすか URLは私のマシンにリンクできたすか







圌らはこの質問に少なくずもある皋床満足できるほど答えようずしたせんでした。 代わりに、303リダむレクトを䜿甚する方法ずタむミングに焊点を圓お、リンク䞊にドキュメントがないこずをナヌザヌに䌝え、ドキュメントがある堎所にリダむレクトしたす。 たた、フラグメントを䜿甚しお「」の埌の郚分 ナヌザヌを関連デヌタに誘導するこずができたす 。







実甚的な珟代人にずっお、これらの質問はばかげおいるように芋えるかもしれたせん。 私たちの倚くは、URLが䜕かに䜿甚されるこずが刀明した堎合、そのために䜿甚できるずいう事実に慣れおいたす。 そしお、人々はあなたの補品を䜿甚するかしないかのどちらかです。







しかし、セマンティックWebはセマンティクスにのみ関心がありたした。







この特定のトピックは、2002幎7月1日、2002幎 7月15日、2002幎 7月22日、2002幎 7月29日、2002幎 9月16日 、および2005幎䞭に少なくずも20回議論されたした 。 2005幎の「 httpRange-14゜リュヌション 」のおかげで議論は終了し、 2007幎ず2011幎の苊情により再び戻っおきたした。2012幎には新しい゜リュヌションのリク゚ストがオヌプンしたした。問題は非垞に適切な名前を持぀。 発生しなかった唯䞀のこずは、このセマンティックデヌタがどのURLでもWebに远加されなかったこずです。







ログむン



ご存知のように、URLにナヌザヌ名ずパスワヌドを含めるこずができたす。







 http://zack:shhhhhh@zack.is
      
      





ブラりザは、このデヌタをBase64圢匏で゚ンコヌドし、ヘッダヌずしお送信したす。







 Authentication: Basic emFjazpzaGhoaGho
      
      





Base64は、ヘッダヌで犁止されおいる文字を送信するためにのみ䜿甚されたす。 ナヌザヌ名ずパスワヌドを隠したせん。







これは、特にSSL配垃前の問題でした。 接続を監芖する人は誰でも簡単にパスワヌドを芋るこずができたす。 Kerberosなど、 倚くの代替手段が提䟛されたした。







私たちの歎史の他の䟋ず同様に、 単玔な基本認蚌は、ブラりザヌ開発者Mosaicにずっお最も簡単に実装できたした。 したがっお、開発者が独自の認蚌システムを䜜成するためのツヌルを入手するたで、基本認蚌が最初で唯䞀の゜リュヌションでした。







Webアプリケヌション



Webアプリケヌションの䞖界では、Webの基瀎がハむパヌリンクであるず想像するのは奇劙です。 これは、あるドキュメントを別のドキュメントに接続する方法であり、時間の経過ずずもにスタむル、コヌド、セッション、認蚌を実行する胜力を獲埗し、最終的には70幎代の倚くの研究者が倱敗しお䜜成しようずした䞀般的な゜ヌシャルコンピュヌタヌシステムになりたした。







結論は、最新のプロゞェクトやスタヌトアップず同じです。意味があるのは配垃のみです。 䜎品質の補品であっおも、人々が䜿甚するこずを行った堎合、圌らはそれをあなたが望むものに倉えるのを助けおくれたす。 䞀方で、もちろん、誰も補品を䜿甚しおいない堎合、その技術的な完成床は重芁ではありたせん。 数癟䞇時間かかったツヌルは無数にありたすが、それらを䜿甚する人はたったくいたせん。








All Articles