URI解析 語法部分

2021-08-25 02:31:05 字數 2041 閱讀 3557

為了清晰描述網路資源的位置,計算機先驅們搗鼓出了uri url urn這些邏輯模型

首先uri叫做統一資源識別符號,為了表示網路中的資源,必須確定嚴謹的語法

uri語法如下

(表示可有可無)

[ scheme:] scheme-specific-part[#fragment]

其中scheme-specific-part結構如下,其中//可以沒有

[ //][ authority][ path][?query]

其中authority結構如下,注意:如果uri中存在authority欄位,那麼必有host欄位

[ user-info@] host [:port]

所以uri結構如下

[ scheme:][ user-info@] host [:port][ path][?query][#fragment]

任何正確url結構必須遵守如上規定

下面我來舉幾個例子

首先是我們最熟悉http請求行,我們來解析它

解析結果如下

query 是 param1=a¶m2=b

fragment = 1

其中沒有使用到user-info欄位,還有host和post就不寫了。

接下來解析大家也熟悉的ftp

表示使用者名稱admin 密碼passwd的使用者登入到profile資料夾中

scheme = ftp

scheme-specific-part = 

authority = 

path = /profile

user-info = admin:passwd

現在來看個本地檔案協議

file:///f:/flash/1.swf

它的的uri解析如下

scheme = file

scheme-specific-part = ///f:/flash/1.swf

authority = 木有

path = /f:/flash/1.swf

因為沒有authority欄位,所以就出現引人注目的///這種情況了

再來分析個磁力矩

magnet:?xt=urn:btih:2f9d75f4cb3385cb06ffb30695a34fac7033902c

它的的uri解析如下

scheme = magnet

scheme-specific-part = ?xt=urn:btih:d5sg5fd43a21sgasdfq123fb30695a34fac7033902c

authority = 木有

// = 木有

path = 木有

query 是 xt=urn:btih:d5sg5fd43a21sgasdfq123fb30695a34fac7033902c

總結:

任何網路中的資源都需要uri進行位置描述。換句話說,我們在程式設計時,想獲取任何網路上的資源(包括本機)都必須先為資源定義乙個uri(資源描述符)。

其他

當然uri模型並非只有語法規範,還有編碼規範和行為規範(規範化,解析,相對化)

這些內容將在我的文章uri解析-編碼規範 ,uri解析-行為規範中詳細解析(還在寫)。

JS語法部分

定義變數使用通用型別var 字串 需要引號 小數,整數,布林型 只返回對或錯 日期時間 算術運算子 1取餘數,2判斷是不是整數,3將某個數值變為某個範圍之內的數,4判斷a是不是b的倍數 關係運算子 不等於 邏輯運算子 並 或 非 其他運算子 賦值 型別轉換 parseint 轉換為整數 parsef...

日語語法部分總結

形容詞推量形 即表示推測的形式。詞尾 變成 後續推量助動詞 表示推測 例 涼 大概涼爽吧 大概好吧 不過,現代日語中,除了少數約定俗成的慣用形式中還可見 形式外,表示推測時,已經改用了更簡便的 終止形 方式了 例 涼 大概涼爽吧 2 形容動詞 1 詞形特徵 2 詞尾變化 活用 1 連用形 否定 用於...

c 基礎語法部分

c 轉換為c語言 簡要 注意事項 c 中this關鍵字是乙個指向物件自己的乙個常量指標,不能給this賦值 只有成員函式才有this指標,友元函式不是類的成員函式,沒有this指標 同樣靜態函式也是沒有this指標的,靜態函式如同靜態變數一樣,不屬於具體的哪乙個物件 this指標作用域在類成員函式內...