看完讓你有一種恍然大悟醍醐灌頂的感覺 http服務器是什么?( 五 )

  • POST 傳輸實體,雖然 GET 方法也可以傳輸主體信息,但是便于區分,我們一般不用 GET 傳輸實體信息,反而使用 POST 傳輸實體信息,
  • PUT 傳輸文件,PUT 方法用來傳輸文件 。 就像 FTP 協議的文件上傳一樣,要求在請求報文的主體中包含文件內容,然后保存到請求 URI 指定的位置 。 但是,鑒于 HTTP 的 PUT 方法自身不帶驗證機制,任何人都可以上傳文件 , 存在安全性問題,因此一般的 W eb 網站不使用該方法 。 若配合 W eb 應用程序的驗證機制,或架構設計采用REST(REpresentational State Transfer,表征狀態轉移)標準的同類 Web 網站,就可能會開放使用 PUT 方法 。
  • HEAD 獲得響應首部,HEAD 方法和 GET 方法一樣,只是不返回報文主體部分 。 用于確認 URI 的有效性及資源更新的日期時間等 。
  • DELETE 刪除文件,DELETE 方法用來刪除文件,是與 PUT 相反的方法 。 DELETE 方法按請求 URI 刪除指定的資源 。
  • OPTIONS 詢問支持的方法,OPTIONS 方法用來查詢針對請求 URI 指定的資源支持的方法 。
  • TRACE 追蹤路徑,TRACE 方法是讓 Web 服務器端將之前的請求通信環回給客戶端的方法 。
  • CONNECT 要求用隧道協議連接代理,CONNECT 方法要求在與代理服務器通信時建立隧道,實現用隧道協議進行 TCP 通信 。 主要使用 SSL(Secure Sockets Layer,安全套接層)和 TLS(Transport Layer Security,傳輸層安全)協議把通信內容加 密后經網絡隧道傳輸 。
  • 我們一般最常用的方法也就是 GET 方法和 POST 方法,其他方法暫時了解即可 。 下面是 HTTP1.0 和 HTTP1.1 支持的方法清單
    HTTP 請求 URLHTTP 協議使用 URI 定位互聯網上的資源 。 正是因為 URI 的特定功能,在互聯網上任意位置的資源都能訪問到 。 URL 帶有請求對象的標識符 。 在上面的例子中,瀏覽器正在請求對象 /somedir/page.html 的資源 。
    我們再通過一個完整的域名解析一下 URL
    比如 http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument 這個 URL 比較繁瑣了吧,你把這個 URL 搞懂了其他的 URL 也就不成問題了 。
    首先出場的是 http
    http://告訴瀏覽器使用何種協議 。 對于大部分 Web 資源,通常使用 HTTP 協議或其安全版本,HTTPS 協議 。 另外,瀏覽器也知道如何處理其他協議 。 例如, mailto: 協議指示瀏覽器打開郵件客戶端;ftp:協議指示瀏覽器處理文件傳輸 。
    第二個出場的是 主機
    www.example.com 既是一個域名,也代表管理該域名的機構 。 它指示了需要向網絡上的哪一臺主機發起請求 。 當然,也可以直接向主機的 IP address 地址發起請求 。 但直接使用 IP 地址的場景并不常見 。
    第三個出場的是 端口
    我們前面說到,兩個主機之間要發起 TCP 連接需要兩個條件,主機 + 端口 。 它表示用于訪問 Web 服務器上資源的入口 。 如果訪問的該 Web 服務器使用HTTP協議的標準端口(HTTP為80,HTTPS為443)授予對其資源的訪問權限,則通常省略此部分 。 否則端口就是 URI 必須的部分 。
    上面是請求 URL 所必須包含的部分,下面就是 URL 具體請求資源路徑
    第四個出場的是 路徑
    /path/to/myfile.html 是 Web 服務器上資源的路徑 。 以端口后面的第一個 / 開始,到 ? 號之前結束,中間的 每一個/ 都代表了層級(上下級)關系 。 這個 URL 的請求資源是一個 html 頁面 。
    緊跟著路徑后面的是 查詢參數
    ?key1=value1&key2=value2 是提供給 Web 服務器的額外參數 。 如果是 GET 請求,一般帶有請求 URL 參數,如果是 POST 請求,則不會在路徑后面直接加參數 。 這些參數是用 & 符號分隔的鍵/值對列表 。 key1 = value1 是第一對,key2 = value2 是第二對參數
    緊跟著參數的是錨點
    #SomewhereInTheDocument 是資源本身的某一部分的一個錨點 。 錨點代表資源內的一種“書簽”,它給予瀏覽器顯示位于該“加書簽”點的內容的指示 。 例如,在HTML文檔上,瀏覽器將滾動到定義錨點的那個點上;在視頻或音頻文檔上,瀏覽器將轉到錨點代表的那個時間 。 值得注意的是 # 號后面的部分,也稱為片段標識符,永遠不會與請求一起發送到服務器 。
    HTTP 版本表示報文使用的 HTTP 協議版本 。
    請求頭部這部分內容只是大致介紹一下,內容較多,后面會再以一篇文章詳述
    在表述完了起始行之后我們再來看一下請求頭部,現在我們向上找,找到http://www.someSchool.edu/someDepartment/home.index,來看一下它的請求頭部
    Host: www.someschool.eduConnection: closeUser-agent: Mozilla/5.0Accept-language: fr

    推薦閱讀