接口基礎第二篇:HTTP協議


HTTP概述

1.什么是HTTP?

超文本傳輸協議(HTTP)是用於傳輸諸如HTML的超媒體文檔的應用層協議,是在 Web 上進行數據交換的基礎,是一種 client-server 協議。

 

 

  • HTTP協議構建於 TCP/IP 協議之上,是一個客戶端和服務器端請求和應答的標准(TCP)。客戶端是終端用戶,服務器端是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口為80)的HTTP請求。

  • HTTP是屬於應用層的協議,它被設計用於Web瀏覽器和Web服務器之間的通信,也可以用於其他目的。

  • HTTP遵循經典的客戶端-服務端模型,客戶端打開一個連接以發出請求,然后等待它收到服務器端響應。

  • HTTP是無狀態協議,意味着服務器不會在兩個請求之間保留任何數據(狀態)。雖然通常基於TCP / IP層,但可以在任何可靠的傳輸層上使用; 也就是說,一個不會靜默丟失消息的協議,如UDP。請求通常是由像瀏覽器這樣的接受方發起的。

  • 一個完整的Web文檔通常是由不同的子文檔拼接而成的,像是文本、布局描述、圖片、視頻、腳本等等。

  • 通俗來講,就是計算機通過網絡進行通信的規則,是一個基於請求與響應,無狀態的,應用層的協議,常基於TCP/IP協議傳輸數據。目前任何終端(手機,筆記本電腦)之間進行任何一種通信都必須按照Http協議進行,否則無法連接。

2.HTTP請求特點?

1.支持客戶端/服務器模式:客戶端發送請求,服務器端響應數據。客戶端向服務器請求服務時,只需要傳送請求的方法和路徑即可。常用的請求方法有get(查)、post(增),除此之外還有put(改)、delete(刪)等,每種方法規定的客戶端與服務器聯系的方式不同,日常工作中見到的最多的是get和post兩種。

2.簡單靈活:HTTP簡單,服務器的程序規模小,通信速度快;HTTP使用TCP作為它的支撐運輸協議,HTTP客戶機發起一個與服務器的TCP連接,一旦連接建立,瀏覽器(客戶機)和服務器進程就可以通過套接字接口訪問TCP,HTTP運行傳輸任意類型的數據對象。

3.無狀態:協議對於事務處理沒有記憶能力,客戶端第一次與服務器建立連接發送請求時需要進行一系列的安全認證匹配等,因此增加頁面等待時間,當客戶端向服務器端發送請求,服務器端響應完畢后,兩者斷開連接,也不保存連接狀態,(一刀兩斷,恩斷義絕,從此路人)下一次客戶端向同樣的服務器發送請求時,由於他們之前已經遺忘了彼此,所以需要重新建立連接。

4.無連接:限制每次連接,使其只處理一個請求。服務器處理完客戶端的請求並收到客戶端的應答后,即斷開連接,這種方式可以節省傳輸時間。

 

 

 

3.HTTP與HTTPS的區別?

HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,為了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(SecureSocketsLayer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

 

 

 

 

HTTP與HTTPS都是應用層協議,且本質上沒有什么不同。他們的區別相對來說就是HTTPS是HTTP的安全版,HTTP信息是明文傳輸,而HTTPS是具有安全性的SSL加密傳輸,安全性要高於HTTP協議。且兩者使用的端口也不一樣,HTTP默認使用80端口,而HTTPS使用443端口。

 

 

 

HTTPS和HTTP的區別主要如下:總的來說:HTTPS=SSL+HTTP

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。

(這個只是默認端口不一樣,實際上端口是可以改的)

4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

 

4.Cookie和Session的區別?

 

 

 

 

Cookie 是訪問某些網站以后在本地存儲的一些網站相關的信息,下次再訪問的時候減少一些步驟。另外一個更准確的說法是:Cookie 是服務器在本地機器上存儲的小段文本並隨每一個請求發送至同一個服務器,是一種在客戶端保持狀態的方案。由於 HTTP 協議是無狀態的協議,所以服務端需要記錄用戶的狀態時,就需要用某種機制來識具體的用戶,這個機制就是 Session。

 

 

Cookie和Session是解決http協議的無狀態性,區別如下:

1.存儲位置不同:Cookie是將用戶數據通過加密的方式保存在客戶端,大多數情況Cookie存儲在瀏覽器;Session是用於控制客戶端和服務端的連接,Session存儲在服務器;

2.存儲容量不同:單個Cookie保存的數據不得超過4kb,一個站點最多20個Cookie,Session一般情況下沒有上限,不過建議不要存放太多東西,否則影響性能;

3.存取方式不同:Cookie只能用ASCII字符串,通過編碼方式獲取Unicode字符或者二進制數據,不好存儲復雜的信息,而Session能存儲任何類型的數據;

4.隱私策略/安全性不同:Cookie放在客戶端,可以進行Cookie欺騙,所以不安全,Session放在服務端,更加安全;

5.有效期不同:Cookie可以設置屬性達到長期有效,Session依賴於JSESSIONID的Cookie,Cookie JSESSIONID的過期時間默認為-1,只需要關閉窗口Session就會失效,就算不依賴Cookie,用UrL重寫也不能完成,如果Session超時時間過長,容易導致內存溢出;

6.服務器壓力不同:Cookie保存在本地,不存在服務端壓力,Session保存在服務端,每個用戶產生一個Session,當訪問增多,會比較占用服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用Cookie;

 

7.瀏覽器支持不同:如果瀏覽器禁用Cookie,那么Cookie直接失效,Session比較好點,可以用URL重寫;

 

8.cookie和session應用的場景:

cookie:用戶的登錄狀態,記錄用戶的習慣,購物車;

session:登錄驗證;

 

 

 

 

轉自:https://mp.weixin.qq.com/s?__biz=MzI5MTg1NjA4Nw==&mid=2247486218&idx=1&sn=fdd24d4c8de2a9dea254aa1672632203&chksm=ec0b00b2db7c89a420f8dda34a3bfba50a2cac877af154a9e07772bbc7b4de4cae0b8ff2fc20&scene=21#wechat_redirect


免責聲明!

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



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