1、TCP/IP協議php
TCP/IP 是不一樣的通訊協議的大集合。html
一、TCP - 傳輸控制協議web
TCP 用於從應用程序到網絡的數據傳輸控制。算法
TCP 負責在數據傳送以前將它們分割爲 IP 包,而後在它們到達的時候將它們重組。apache
二、IP - 網際協議瀏覽器
IP 負責計算機之間的通訊。安全
IP 負責在因特網上發送和接收數據包。服務器
三、HTTP - 超文本傳輸協議網絡
HTTP 負責 web 服務器與 web 瀏覽器之間的通訊。app
HTTP 用於從 web 客戶端(瀏覽器)向 web 服務器發送請求,並從 web 服務器向 web 客戶端返回內容(網頁)。
四、HTTPS - 安全的 HTTP
HTTPS 負責在 web 服務器和 web 瀏覽器之間的安全通訊。
做爲有表明性的應用,HTTPS 會用於處理信用卡交易和其餘的敏感數據。
HTTPS等於SSL協議加上HTTP協議。
SSL協議是爲客戶端和服務器端HTTP數據傳輸網絡通道的數據加密。SSL協議更像是一個密碼庫。裏面提供海量的加密和解密算法。
2、HTTP和HTTPS協議
一、HTTP請求方式
GET |
向Web服務器請求一個文件 |
POST |
向Web服務器發送數據讓Web服務器進行處理 |
PUT |
向Web服務器發送數據並存儲在Web服務器內部 |
HEAD |
檢查一個對象是否存在 |
DELETE |
從Web服務器上刪除一個文件 |
CONNECT |
對通道提供支持 |
TRACE |
跟蹤到服務器的路徑 |
OPTIONS |
查詢Web服務器的性能 |
咱們主要用的兩種是POST和GET
GET 動做通常用於客戶端從服務器端獲取文件或數據。
POST 動做通常用於客戶端向服務器提交數據,而且,由服務器處理後存儲。
HOST:
請求的web服務器域名地址
User-Agent:
HTTP客戶端運行的瀏覽器類型的詳細信息。經過該頭部信息,web服務器能夠判斷到當前HTTP請求的客戶端瀏覽器類別。
實例:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Accept:
指定客戶端可以接收的內容類型,內容類型中的前後次序表示客戶端接收的前後次序。
例如:
Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language:
指定HTTP客戶端瀏覽器用來展現返回信息所優先選擇的語言。
實例:
Accept-Language: zh-cn,zh;q=0.5
這裏默認爲中文
Accept-Encoding:
指定客戶端瀏覽器能夠支持的web服務器返回內容壓縮編碼類型。表示容許服務器在將輸出內容發送到客戶端之前進行壓縮,以節約帶寬。而這裏設置的就是客戶端瀏覽器所可以支持的返回壓縮格式。
實例:
Accept-Encoding: gzip,deflate
備註:
其實在百度不少產品線中,apache在給客戶端返回頁面數據以前,將數據以gzip格式進行壓縮。
Accept-Charset:
瀏覽器能夠接受的字符編碼集。
實例:
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Content-Type:
顯示此HTTP請求提交的內容類型。通常只有post提交時才須要設置該屬性。
實例:
Content-type: application/x-www-form-urlencoded;charset:UTF-8
有關Content-Type屬性值能夠以下兩種編碼類型:
(1)「application/x-www-form-urlencoded」: 表單數據向服務器提交時所採用的編碼類型,默認的缺省值就是「application/x-www-form-urlencoded」。 然而,在向服務器發送大量的文本、包含非ASCII字符的文本或二進制數據時這種編碼方式效率很低。
(2)「multipart/form-data」: 在文件上載時,所使用的編碼類型應當是「multipart/form-data」,它既能夠發送文本數據,也支持二進制數據上載。
當提交爲單單數據時,可使用「application/x-www-form-urlencoded」;當提交的是文件時,就須要使用「multipart/form-data」編碼類型。
(3)在PHP中的只讀流(php:\\input)和只寫流(php:\\output)中的只讀流中,「application/x-www-form-urlencoded」的數據編碼格式,能夠從其獲取。 而「multipart/form-data」則不能夠讀取。
Connection:
表示是否須要持久鏈接。若是web服務器端看到這裏的值爲「Keep-Alive」,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久鏈接),它就能夠利用持久鏈接的優勢,當頁面包含多個元素時(例如Applet,圖片),顯著地減小下載所須要的時間。要實現這一點, web服務器須要在返回給客戶端HTTP頭信息中發送一個Content-Length(返回信息正文的長度)頭,最簡單的實現方法是:先把內容寫入ByteArrayOutputStream,然 後在正式寫出內容以前計算它的大小。
實例:
Connection: keep-alive
Keep-Alive:
顯示此HTTP鏈接的Keep-Alive時間。使客戶端到服務器端的鏈接持續有效,當出現對服務器的後繼請求時,Keep-Alive功能避免了創建或者從新創建鏈接。
之前HTTP請求是一站式鏈接,從HTTP/1.1協議以後,就有了長鏈接,即在規定的Keep-Alive時間內,鏈接是不會斷開的。
實例:
Keep-Alive: timeout=5,max=100
參考文獻:https://blog.csdn.net/weixin_42339460/article/details/80650199
https://www.cnblogs.com/widget90/p/7650890.html
http://www.w3school.com.cn/tcpip/tcpip_protocols.asp