#author("2022-12-10T10:58:21+09:00","default:k1rou","k1rou") #author("2023-02-26T11:24:22+09:00","default:k1rou","k1rou") *URLとは [#c4fdee4a] **名称 [#o1b282d5] -Uniform Resource Locator **概要 [#w390b0b4] -インターネット上のWebサイト等のリソースのアドレスのこと *URL と URI と URN [#gd788a4d] **URI [#v3b2f406] -Uniform Resource Identifier -リソースのアドレスに限定しないリソースを一意に識別するための書式 -URI はURL の書式に従ったアドレスの表記 **URN [#hb83f978] -Uniform Resource Name -URN の書式 --urn:名前空間の識別子:固有の文字列 --先頭は「urn:」 --半角コロン(:)で区切る *URLの構造 [#y554b824] -PROT://SERVER:PORT/PATH -PROT://USER:PASS@FQDN:PORT/PATH **PROT [#s93f23f3] -プロトコル(スキーム) -種類 --[[HTTP]]プロトコル - http:// --[[FTP]]プロトコル - ftp:// --クライアントのファイル - file:// --メール - mail: --ニュース - news: **SERVER [#tf03f208] -サーバ名 -ホスト名 -[[IPアドレス]] **PORT [#gcf380d3] -[[ポート番号]] **PATH [#v02d8b9c] -パス --ディレクトリ名 --ファイル名 *Origin について [#i5391a5c] -「[[Origin]]」参照 *パラメータとフラグメント [#z7cd27fe] -URLのPATHの後ろに指定する情報 **パラメータ [#za9109f7] -"?" に続けて指定する -Webブラウザは、パラメータ部をHTTP リクエストに含めて処理する --PATHにパラメータ部の情報が渡される **フラグメント [#ic969a84] -"#" に続けて指定する -Webブラウザは、フラグメント部をHTTP リクエストに含めずに処理する --PATHにフラグメント部の情報が渡されない -フラグメント部の情報には、JavaScript がアクセスすることができる --window.location.hash ---"#" 以降の文字列を取得する *URL偽装 [#if14724a] -「[[ホモグラフ攻撃]]」参照 *URLエンコード [#f2c3b478] -URLで使用可能な文字に変換する処理 -変換内容 --半角スペースを「+」に変換 --特殊文字を「%16進数」に変換 --[[ASCIIコード]]の31以下、128以上の文字を「%16進数」に変換 *URI [#ud950096] **Cool URI [#z4b0f7b1] -Cool URIs don't change~ https://www.w3.org/Provider/Style/URI.html -よいURIを指す -バックエンドのプログラミング言語に依存しない(拡張子、大文字と小文字の混在など) **URI空間 [#m253dd9f] *URL rewriting機能 [#oe1fd792] -クライアントが[[Cookie]]を使えない場合にURLのパラメータを使うようにするWebサーバの機能のこと *関連サイト [#ce59a3c4] -urlscan.io~ https://urlscan.io/ -aguse~ https://www.aguse.jp/ -Understanding "same-site" and "same-origin" - Google Developers~ https://web.dev/same-site-same-origin/ *関連用語 [#b40d1308] -[[FQDN]] -[[HTTP]] -[[SOP]] - Same Origin Policy -[[URLエンコード]] -[[URN]] -[[URI Templates]] -[[ドメイン]] -WHATWG