摘要:是為互聯網服務的協議族,它是網絡通信協議的統稱,由和等協議組成。預告本周五更新面試常考題之會話控制和網絡協議,敬請期待。以上內容摘自程序員面試筆試寶典書籍,該書已在天貓京東當當等電商平臺銷售。
你好,是我琉憶,歡迎您來到PHP面試專欄。
本周(2019.2-25至3-1)的一三五更新的文章如下:
周一:PHP面試常考之會話控制
周三:PHP面試常考之網絡協議
周五:PHP面試常考題之會話控制和網絡協議
送2本書:《PHP程序員面試筆試真題解析》
自己整理了一篇面試最愛問的一道題“從網址輸入到看到內容背后的流程是什么樣的?”的文章,關注公眾號:“琉憶編程庫”,回復:“http”,我發給你。
以下正文的內容來自《PHP程序員面試筆試寶典》書籍,如果轉載請保留出處:
一、協議和TCP/IP在20世紀80年代,計算機網絡誕生,它能夠將一臺臺獨立的計算機互相連接,使得位于不同地理位置的計算機之間可以進行通信,實現信息傳遞和資源共享,形成一組規模大、功能強的計算機系統。不過,計算機要想在網絡中正常通信,必須遵守相關網絡協議的規則,常用的網絡協議有TCP、UDP、IP和HTTP等。
協議協議可簡單理解為計算機之間的一種約定,好比人與人之間對話所使用的語言。在國內,不同地區的人講的方言都不同,如果要溝通,就要約定一種大家都會的語言,例如全國通用的普通話,普通話就相當于協議,溝通相當于通信,說話內容相當于數據信息。協議需要具備通用的特征,但在早期,每家計算機廠商都根據自己的標準來生產網絡產品,這使得不同廠商制造的計算機之間難以通信,嚴重影響了用戶的日常使用。為了應對這些問題,ISO(國際標準化組織)制定了一套國際標準OSI(開放式系統互聯通信參考模型),將通信系統標準化。所謂標準化是指建立技術標準,企業按照這個標準來制造產品,這大大提升了產品的兼容性、互操作性以及易用性。
OSI參考模型將復雜的協議分成了7層(見下表),每一層各司其職,并且能獨立使用,這相當于軟件中的模塊化開發,有較強的擴展性和靈活性。分層是一種管理哲學,將同一類功能的網絡協議分到一層中,使協議變得靈活可控。
在7層OSI模型中,發送方從第7層的應用層到第1層的物理層,由上至下按順序傳輸數據,而接收方則從第1層到第7層,由下至上接收數據,如右圖所示。
TCP/IPTCP/IP是為互聯網服務的協議族,它是網絡通信協議的統稱,由IP、TCP、HTTP和FTP等協議組成。TCP/IP將通信過程抽象為4層,被視為簡化的OSI參考模型(如右圖所示,左邊是OSI參考模型,右邊是TCP/IP的模型),但負責維護這套協議族的不是ISO而是IETF(互聯網工程任務組)。TCP/IP在標準化過程中注重開放性和實用性,需要標準化的協議會被放進RFC(Request For Comment)文檔中,RFC文檔詳細記錄了協議的實現、運用和實驗等各方面的內容,并且這些文檔可在線瀏覽。
發送的數據會在分層模型內傳遞,并且每到一層,就會附加該層的包首部,包首部包含了該層協議的相關信息,例如MAC地址、IP地址和端口號。下圖描繪了從傳輸層到互聯網層,分別附加了TCP包首部和IP包首部。
互聯網一詞現在已經家喻戶曉,它是由許多網絡互聯構成的一個巨型網絡。早期的網絡僅僅是連接計算機,而現代的互聯網連接的卻是全世界的人。互聯網已經不再是單純的以數據為核心,而是以人為中心,滲透到生活中的方方面面,顛覆了許多傳統模式,例如足不出戶就能購物、社交或娛樂。??
自己整理了一篇面試最愛問的一道題“從網址輸入到看到內容背后的流程是什么樣的?”的文章,關注公眾號:“琉憶編程庫”,回復:“http”,我發給你。
HTTP(HyperText Transfer Protocol)即超文本傳輸協議,是一種獲取網絡資源(例如圖像、HTML文檔)的應用層協議,它是互聯網數據通信的基礎,由請求和響應構成(如右圖所示)。通常,客戶端發起HTTP請求(在請求報文中會指定資源的URL),然后用傳輸層的TCP協議建立連接,最后服務器響應請求,做出應答,回傳數據報文。HTTP自問世到現在,經歷了幾次版本迭代,目前主流的版本是HTTP/1.1,新一代HTTP/2.0是HTTP/1.1的升級版,各方面都超越了前者,但新技術要做到軟硬件兼容還需要假以時日。
HTTP協議有三個特征,分別是持久連接、管道化以及無狀態。
(1)持久連接
在HTTP的早期版本中,一次HTTP通信完成后就會斷開連接,下一次再重新連接,如右圖所示。在當時請求資源并不多的情況下,并不會造成大問題。但隨著HTTP的普及,請求的資源越來越龐大,例如一個HTML文檔中可能會包含多個CSS文件、JavaScript文件、圖像甚至視頻,如果還這么操作,會造成巨大的通信開銷。
為了解決上述問題,提出了持久連接,只要通信兩端的任意一端沒有明確提出斷開,就保持連接狀態,以便下一次通信復用該連接,這避免了重復建立和斷開連接所造成的開銷,加速了頁面呈現,如下圖所示。
(2)管道化
管道化是建立在持久連接上的進一步性能優化。過去,請求必須按照先進先出的隊列順序,也就是發送請求后,要等待并接收到響應,才能再繼續下一個請求。啟用管道化后,就會將隊列順序遷移到服務器,這樣就能同時發送多個請求,然后服務器再按順序一個接一個地響應,如下圖所示。?
(3)狀態管理
HTTP是一種無狀態協議,請求和響應一一對應,不會出現兩個請求復用一個響應的情況(如下圖所示)。也就是說,每個請求都是獨立的,即使在同一條連接中,請求之間也沒有聯系。??
在有些業務場景中,需要請求有狀態,例如后臺登錄。成功登錄后就得保存登錄狀態,否則每次跳轉進入其他頁面都會要求重新登錄。為了能管理狀態,引入了Cookie技術,Cookie技術能讓請求和響應的報文都附加Cookie信息,客戶端將Cookie值發送出去,服務器接收并處理這個值,最終就能得到客戶端的狀態信息。
預告:本周五更新PHP面試常考題之會話控制和網絡協議,敬請期待。
以上內容摘自《PHP程序員面試筆試寶典》書籍,該書已在天貓、京東、當當等電商平臺銷售。
更多PHP相關的面試知識、考題可以關注公眾號獲取:琉憶編程庫
對本文有什么問題或建議都可以進行留言,我將不斷完善追求極致,感謝你們的支持。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30173.html
摘要:一的會話也稱為。如果啟動會話成功,則函數返回,否則返回。會話啟動后就可以載入該會話已經注冊的會話變量以便使用。但數組創建的在會話結束后就會失效。預告本周三更新面試常考之網絡協議,敬請期待。 你好,是我琉憶,歡迎您來到PHP面試專欄。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面試常考之會話控制周三:PHP面試常考之網絡協議周五:PHP面試常考題之會話控制和...
摘要:一鏈表鏈表是一種常見的基礎數據結構,是一種線性表,但是并不會按線性的順序存儲數據,而是在每一個節點里存到下一個節點的指針。指向整個列表的指針可以被稱作訪問指針。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.18至3.22)的一三五更新的文章如下: 周一:PHP面試常考之數據結構——鏈表的概念周三:PHP面試常考之數據結構——棧和隊列周五:PHP面試常考之...
摘要:工廠模式其實可以劃分為簡單工廠模式工廠方法模式抽象工廠模式等。簡單工廠模式介紹簡單工廠模式又稱為靜態工廠方法模式,它屬于類創建型模式。此模式是對工廠方法模式的進一步擴展。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設計模式——工廠模式周三:PHP面試常考之設計模式——建造者模式周五:PHP...
摘要:你好,是我琉憶,程序員面試筆試系列圖書的作者。建造者模式介紹建造者模式又名生成器模式,是一種對象構建模式。表示被構造的復雜對象。創建該產品的內部表示并定義它的裝配過程。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設計模式——工廠模式周三:PHP面試常考之設計模式——建造者模式周五:PHP面...
摘要:策略模式介紹策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨立于使用它的客戶而獨立變化。使用策略模式的好處策略模式提供了管理相關的算法族的辦法。使用策略模式可以避免使用多重條件轉移語句。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設計模式——工...
閱讀 3715·2023-04-26 00:56
閱讀 2695·2021-09-30 10:01
閱讀 971·2021-09-22 15:30
閱讀 3929·2021-09-07 10:21
閱讀 1535·2021-09-02 15:40
閱讀 2769·2021-08-30 09:47
閱讀 1253·2021-08-16 10:57
閱讀 1874·2019-08-30 14:01