初步瞭解URL(介面測試必備)
最近開始學習,必須瞭解http協議,瞭解http協議之前還得了解URL。哎,學習了才知道自己欠缺多少東西啊。
以下是我在別的地方看到了。記下來,以免以後找不到了。
當你看到一個 URL,比如 ,其實是由幾個元件構成的。我們可以把這個 URL 分解成 3 部分:
• http :通常被稱為 URL 模式( scheme )。總是出現在冒號和兩個斜槓之前,作用是告訴 web 客戶端怎樣去訪問一個資源。在本例中,它告訴 web 客戶端使用超文字傳輸協議也就是 HTTP 去發起一個請求。常見的 URL 模式還有 ftp,mailto和git。
• :URL 的第二個部分,就是資源路徑或主機 (host)。它告訴客戶端,資源的確切位置。
• /home/ :URL 的第三個部分就是 URL 路徑。它代表了客戶端正在請求什麼樣的本地資源 (對於伺服器來說)。
有時候,這個路徑指向了一個主機上特定的資源。比如, /home/index.html 指向了 example.com 伺服器上的一個 HTML 檔案。
另外,URL 可以包含一個主機用來監聽 HTTP 請求的埠號。一個 這樣的 URL,透過 3000 埠去監聽 HTTP 請求。web 客戶端用來監聽 HTTP 請求的預設埠號是 80,如果一個 URL 中沒有指定其他的埠號,那就等價於寫了80 除非指定了其他的埠號代替,不然埠號80會被預設用於正常的 HTTP 請求。
查詢字串 / 引數一個查詢字串或者引數是 URL 的一部分並且通常都包含一些要發往至伺服器的各種型別的資料。一個簡單的帶查詢字串的 URL 長這樣:
讓我們拆開來看看:
? 這是個保留字,標識著查詢字串的開始
search=ruby 這是一個引數的鍵/值對兒
& 這是個保留字,需要給查詢字串新增引數時使用
rasult=10 這也是一個引數的鍵/值對兒
現在我們再來看一個例子。假設我們有下面這個 URL:
在上面這個例子裡,鍵/值對兒 product=iphone , size=32gb , color=white 透過 URL 傳給了伺服器。這個請求告訴 的伺服器,把要請求的資源條件限制在 產品 iphone , 大小 32gb 和 顏色白色 。伺服器怎麼樣使用這些引數取決於服務端的應用的處理邏輯。
另一個經常見到查詢字串的情況是當你在搜尋引擎上搜尋東西的時候。因為查詢字串是透過 URL 傳遞的,他們僅使用 HTTP 的 GET 請求。在本書後面的章節裡我們會討論不同的 HTTP 請求,但是現在你所需要知道的是,當你不論什麼時候在瀏覽器的位址列裡輸入網址進行瀏覽的時候,你就是在發起 HTTP 的 GET 請求。大部分超連結都是 HTTP 的 GET 請求,偶爾會有一些例外。
使用查詢字串向伺服器傳遞附加資訊是個很棒的方法,但是對於查詢字串的使用,以下是一些限制:
•查詢字串有最大長度。所以,如果你大量的資料需要傳輸,還是不要用查詢字串的好。
•查詢字串中使用的鍵/值對兒是顯示在 URL 上的。所以,不推薦用查詢字串傳輸敏感資訊比如使用者名稱或密碼。
•查詢字串中無法使用空格和特殊字元比如 & 。它們必須用 URL 編碼代替,我們接下來會討論這個。
URL 在設計的時候就預設只接受 ASCII 碼。因此,不安全的或者不是 ASCII 碼的字元就要進行轉義或者編碼來適應這個格式。URL 編碼的原理是將不符合格式的字元替換成 % 開頭後面跟著兩個十六進位制數字代表的 ASCII 碼的一串字元。
下面是一些常見的 URL 編碼和例項 URL:
space 020
! 041
- 053
符合下列條件的字元都要進行編碼處理:
1.沒有對應的 ASCII 碼。
2.字元的使用是不安全的。比如 % 就是不安全的,因為它經常用於對其它字元進行轉義。
3.字元是有特殊用途的 URL 模式保留字。有些字元用於保留字是有著特殊的意義;它們在 URL 中的存在具有特殊用途。比如 / , ? , : ,和 & ,都是需要進行編碼的保留字。
比如 & 被保留用於查詢字串的分隔符。 : 也被保留用於分隔主機/埠號和使用者名稱/密碼。
那麼什麼樣的字元能在 URL 裡安全地使用呢?只有字母表裡的和 $-_.+!'()," 這些字元。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1978/viewspace-2798318/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初步瞭解軟體測試
- API 測試 | 瞭解 API 介面測試 | API 介面測試指南API
- 【編測編學】介面測試必備面試題必背(下)面試題
- API測試:瞭解API介面測試與API介面測試指南API
- 【編測編學】介面測試必備面試題(上)面試題
- 瞭解1688API介面測試 | 1688 API介面測試指南API
- 如何編寫介面測試用例?測試工程師必備技能!工程師
- 乾貨 | Dubbo 介面測試技術,測試開發進階必備
- TypeScript初步瞭解TypeScript
- 測試工程師必學:測試人員如何深入瞭解專案工程師
- 軟體測試必備 - 14個介面與自動化測試練習網站網站
- 大資料初步瞭解大資料
- 初步瞭解 JS 繼承JS繼承
- Java集合類初步瞭解Java
- 推薦一款技術人必備的介面測試神器:ApifoxAPI
- 從0到1學習介面自動化測試必備知識!
- 對函式的初步瞭解函式
- JDBC的初步瞭解及使用JDBC
- 彙編初步瞭解筆記筆記
- 服務端測試開發必備技能:Mock測試服務端Mock
- Web 端的測試 Selenium 用法必備Web
- 開發必備之單元測試
- vue瞭解與初步接觸/使用Vue
- 初步瞭解AQS是什麼(二)AQS
- Apifox 6.7.4 中文版 一款技術人必備的介面測試神器API
- 效能測試必備基礎知識(二)
- 我瞭解的測試工具
- 測試人必須瞭解的軟體測試流程及5大測試過程模型,經典乾貨分享!模型
- 面試必問的volatile,你瞭解多少?面試
- 面試必問之 CopyOnWriteArrayList,你瞭解多少?面試
- 測試開發必備技能:安全測試漏洞靶場實戰
- 介面測試--apipost介面斷言詳解API
- 委託初步瞭解(程式碼段展示)
- python之對元組的初步瞭解Python
- Flask入門學習---初步瞭解模板Flask
- 您真的瞭解網站必備的SSL證書嗎?網站
- 2020最新全棧必備 Redis,你還不瞭解麼全棧Redis
- 專案必備技術之單元測試