首頁 後端開發 php教程 HTTP協定實例詳解

HTTP協定實例詳解

Mar 12, 2018 pm 03:25 PM
http 協定 詳解

HTTP是一個應用層協議,由請求和回應構成,是一個標準的客戶端服務模型。 HTTP通常承載於TCP協定之上,有時候也承載於TLS或SSL協定層之上,這時候,就成了常說的HTTPS。預設HTTP的連接埠號碼為80,HTTPS的連接埠號碼為443。

   

缺點是服務端不會主動的向客戶端PUSH

    SPDY協定的應用程式需要用戶端瀏覽器和伺服器端同時支援。優化了瀏覽器和伺服器之間的通信,支援流復用,具備優先順序的請求,主動發起請求,強制SSL安全傳輸等先進的特性

4.1.2 HTTP協定如何運作

    瀏覽網頁是HTTP協定的主要應用,一次HTTP操作稱為一個事務

    1 客戶機於伺服器需要建立連接,點擊某個超鏈接,HTTP協定的工作開始。

    2 建立連線後,用戶端傳送一個請求給伺服器。

    3 伺服器接收到請求後,給予對應的回應訊息

    4 用戶端接收伺服器傳回的訊息並顯示在使用者的顯示器上,然後用戶端與伺服器斷開連線

HTTP協定中的一些主要概念

    1 請求

        HTTP請求由三個部分組成:請求頭,請求標頭,請求正文

        請求列:Method Request-URL HTTP-Version CRLF

          Method :請求方法(GET,POST,HEAD,PUT,,DELETE,TRACE,CONLETETE,TRACE,#OPST,HEAD,PUT,DELETE,TRACE,CONLETE

         Request URL:一個統一資源識別碼


         HTTP Version:請求的HTTP協定版本

 
##     2  回應


        HTTP回應也由三個部分組成:分別為狀態行,訊息標頭,訊息回應正文


   Status-Code Reason-Phrase CRLF


        HTTP Version:服務器HTTP協議的版本


        Status-Code:服務器發回的響應狀態代碼


        Reason Phrase:狀態代碼的文字描述


        狀態代碼有三位數字組成,五種可能取值# 

    指示,繼續處理


        2XX:成功--請求已成功接收,瞭解並接受


        3XX:重定向--要完成請求必須進行更進一步的操作請求


        4XX:客戶端錯誤--請求有語法錯誤或請求無法實現


        5XX:伺服器錯誤--伺服器未能實現合法的請求


#        常見額狀態代碼及狀態說明


         200 OK:客戶端請求成功


   伺服器所理解


         401 Unauthorize:請求未經授權,此狀態碼必須與WWW Authenticate標頭一起使用


         403   403收到請求,但是拒絕提供伺服器服務


         404 Not found:請求的資源不存在,例如輸入了錯誤的URL


        500 internal Server Error#     

##         503 Server Unavailable:伺服器目前無法處理客戶端的請求,一段時間後可能會恢復正常

##    3 標頭


 #  請求標頭、回應標頭、實體標頭


        1 普通標頭中有少數標頭域用於所有的請求和回應訊息,但並未用於傳輸的實體,且只用於傳輸的訊息(快取控制、連線控制)


        2 請求標頭允許客戶端傳遞要求給伺服器端的額外資訊以及用戶端本身的資訊(UA頭,Accept)

        3 回應標頭允許伺服器傳遞無法放在狀態列中的額外回應訊息,以及關於伺服器的資訊和對Request URL所識別的資源進行下一步存取的資訊(Location)

#        4 實體標頭定義了實體內文和要求所識別的資源的元資訊,例如有無實體文字

        幾個較重要的封包:#  :頭域指定請求資源的Internet主機和連接埠號,必須表示請求URL的原始伺服器或網關的位置。

         User Agent:簡稱UA,內容包含發出要求的使用者資訊。通常包含瀏覽者的信息,主要是瀏覽器的名稱版本和所使用的作業系統

         Accept:告訴伺服器可以接受的檔案格式。通常這個值在各種瀏覽器中都差不多。

        Cookie:分成兩種:一種是客戶端想伺服器傳送的使用Cookie封包頭,可以有多個數值,另一種是伺服器傳送給瀏覽器的,標頭為Set Cookie,只能有一個值,需要指明domain,path

        Cache Control:指定請求與回應遵循的快取機制。在要求訊息或回應訊息設定Cache Control並不會修改另一個訊息過程中的快取處理過程。請求時快取指令包括no cache,no store,max age,max state,no transform,must revalidate,proxy revalidate,max age

        Referer:頭域允許客戶端指定請求提供客戶端的來源資源位址,這可以允許伺服器產生回退鍊錶,用來登錄,最佳化緩存,Referer通常是流量統計系統用來記錄來訪者位址的參數

        Content Length:內容長度

        Content Range:回應的資源範圍。可以在每次請求中標記請求的資源範圍,在連線斷開重連時,用戶端只請求該資源未下載的部分,而不是重新請求整個資源,實現斷點續傳。迅雷就是這個原理,使用多執行緒分段讀取網路傻女孩的資源,最後合併

         Accept Encoding:指定能接收的編碼方式

#         標頭:在http訊息中,也可以使用一些在http1.1中正式規範裡沒有定義的頭字段。

相關推薦:

php中header使用的HTTP協定用法摘要

HTTP協定深度解析

HTTP協定相關介紹及深度理解

#

以上是HTTP協定實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
Win11管理員權限取得詳解 Win11管理員權限取得詳解 Mar 08, 2024 pm 03:06 PM

Windows作業系統是全球最受歡迎的作業系統之一,其新版本Win11備受矚目。在Win11系統中,管理員權限的取得是一個重要的操作,管理員權限可以讓使用者對系統進行更多的操作和設定。本文將詳細介紹在Win11系統中如何取得管理員權限,以及如何有效地管理權限。在Win11系統中,管理員權限分為本機管理員和網域管理員兩種。本機管理員是指具有對本機電腦的完全管理權限

Oracle SQL中的除法運算詳解 Oracle SQL中的除法運算詳解 Mar 10, 2024 am 09:51 AM

OracleSQL中的除法運算詳解在OracleSQL中,除法運算是一種常見且重要的數學運算運算,用來計算兩個數相除的結果。除法在資料庫查詢中經常用到,因此了解OracleSQL中的除法運算及其用法是資料庫開發人員必備的技能之一。本文將詳細討論OracleSQL中除法運算的相關知識,並提供具體的程式碼範例供讀者參考。一、OracleSQL中的除法運算

PHP模運算子的作用及用法詳解 PHP模運算子的作用及用法詳解 Mar 19, 2024 pm 04:33 PM

PHP中的模運算子(%)是用來取得兩個數值相除的餘數的。在本文中,我們將詳細討論模運算子的作用及用法,並提供具體的程式碼範例來幫助讀者更好地理解。 1.模運算子的作用在數學中,當我們將一個整數除以另一個整數時,就會得到一個商和一個餘數。例如,當我們將10除以3時,商數為3,餘數為1。模運算子就是用來取得這個餘數的。 2.模運算子的用法在PHP中,使用%符號來表示模

linux系統呼叫system()函數詳解 linux系統呼叫system()函數詳解 Feb 22, 2024 pm 08:21 PM

Linux系統呼叫system()函數詳解系統呼叫是Linux作業系統中非常重要的一部分,它提供了一種與系統核心互動的方式。其中,system()函數是常用的系統呼叫函數之一。本文將詳細介紹system()函數的使用方法,並提供對應的程式碼範例。系統呼叫的基本概念系統呼叫是使用者程式與作業系統核心互動的一種方式。使用者程式透過呼叫系統呼叫函數來請求作業系統

Linux的curl指令詳解 Linux的curl指令詳解 Feb 21, 2024 pm 10:33 PM

Linux的curl命令詳解摘要:curl是一種強大的命令列工具,用於與伺服器進行資料通訊。本文將介紹curl指令的基本用法,並提供實際的程式碼範例,幫助讀者更好地理解和應用該指令。一、curl是什麼? curl是命令列工具,用於發送和接收各種網路請求。它支援多種協議,如HTTP、FTP、TELNET等,並提供了豐富的功能,如檔案上傳、檔案下載、資料傳輸、代

如何使用C++實作HTTP流傳輸? 如何使用C++實作HTTP流傳輸? May 31, 2024 am 11:06 AM

如何在C++中實現HTTP流傳輸?使用Boost.Asio和asiohttps客戶端程式庫建立SSL流套接字。連接到伺服器並發送HTTP請求。接收HTTP響應頭並列印它們。接收HTTP回應正文並列印它。

深入探討C#中的遞迴演算法 深入探討C#中的遞迴演算法 Feb 19, 2024 pm 08:09 PM

C#的遞迴演算法詳解,需要具體程式碼範例一、什麼是遞迴演算法?遞歸是指一個函數或方法在執行過程中呼叫自身的情況。遞歸演算法是程式設計中常見的一種解決問題的方法。它將一個問題分解成一個或多個與原始問題相似但規模較小的子問題,然後透過解決這些子問題來解決原問題。遞歸演算法通常用於解決重複性的問題。二、遞迴演算法的實作方式在C#中,實作遞迴演算法主要有兩種方式:直接遞迴與間接遞迴。直

如何使用 Golang 實作 HTTP 檔案上傳安全性? 如何使用 Golang 實作 HTTP 檔案上傳安全性? Jun 01, 2024 pm 02:45 PM

在Golang中實作HTTP檔案上傳安全性需要遵循以下步驟:驗證檔案類型。限製檔案大小。檢測病毒和惡意軟體。儲存檔案安全。

See all articles