TCP/IP協議之http和https協議


一、TCP/IP協議

TCP/IP 是不同的通信協議的大集合。

1、TCP - 傳輸控制協議

 

TCP 用於從應用程序到網絡的數據傳輸控制。

 

TCP 負責在數據傳送之前將它們分割為 IP 包,然后在它們到達的時候將它們重組。

2、IP - 網際協議

IP 負責計算機之間的通信。

IP 負責在因特網上發送和接收數據包。

3、HTTP - 超文本傳輸協議

HTTP 負責 web 服務器與 web 瀏覽器之間的通信。

HTTP 用於從 web 客戶端(瀏覽器)向 web 服務器發送請求,並從 web 服務器向 web 客戶端返回內容(網頁)。

4、HTTPS - 安全的 HTTP

HTTPS 負責在 web 服務器和 web 瀏覽器之間的安全通信。

作為有代表性的應用,HTTPS 會用於處理信用卡交易和其他的敏感數據。

HTTPS等於SSL協議加上HTTP協議。

SSL協議是為客戶端和服務器端HTTP數據傳輸網絡通道的數據加密。SSL協議更像是一個密碼庫。里面提供海量的加密和解密算法。

二、HTTP和HTTPS協議 

1、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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM