URL の変更点


#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