TCP/IP協議之http和https協議

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

相關文章
相關標籤/搜索