-
1 # WinterStudio
-
2 # 跨越一千五百年
深入研究的話看你是做什麼的。就算是做前端的也沒必要研究,現在能做到網站全棧開發的能有多少呢?基本都是基於tomcat搭建伺服器的,或者lamp的,這些也不需要知道http協議格式。
http是在應用層的協議,解析起來比較麻煩。因為在下層軟體中收到的是tcp報文包。如果想要研究,建議研究一下websocket用法和報文協議,對我們c++好一點。我們可以嘗試用tcp協議實現post和get請求。
-
3 # 陳亞偉72800123
對於初學者而言,很多語言都有針對http協議封裝的開發庫,熟悉瞭解這些庫,並可以透過它實現自己想要實現的功能,知道http的get和post等方法的區別,對於常用的http的一些狀態碼有所瞭解,可以透過狀態碼排查你的網站出現的問題,例如404、500、200等,如果你已經掌握了這些,你就可以去公司面試程式設計師崗位了,當你到公司工作了半年後,你肯定會想要增加薪水,這時你需要了解http的底層,在瞭解http底層時,你還需要看一下tcp,udp等知識,通俗的說http就是在tcp的層次上對協議進行了封裝,自定義了一套針對網頁開發的協議,制定了一套統一的標準,一般協議分為head和body,head裡會包括一些加密方式,body的長度等,透過把位元組轉化成我們能讀懂的基礎資料型別,字串等,轉化時不同的語言的資料型別佔用的位元組數不一樣,你需要查閱一些不同需要的資料型別佔用的位元組數,有了這些知識,你在查閱一些資料,進行一些擴充套件,提升加薪是沒有問題的,不知道回答對你是否有幫助,但是我還是希望對你有所幫助
-
4 # 有骨有度
看你的介紹,自學網站開發。那就很難涉及到太底層的協議,每種語言都有非常多,甚至語言自身就提供了Http協議的封裝庫,直接用就行。
深入的話,如果你用過Socket程式設計,就知道其實一般也是到Tcp程式設計這個級別,這個級別的話,會稍微複雜的多,要學的東西就多了。拆包粘包,失敗重連,客戶端關閉處理等等。一般不做相對底層的封裝和抽象,Http這個就可以足夠使用。等你確實需要了解Tcp的時候再去學習研究也不遲。
業內有個經典的面試題大意是“瀏覽器位址列輸入一個地址後,背後都發生了什麼”,你會發覺涉及到的東西真的很多。有次面試問我,記得好像是問客戶端失敗重連,是第幾次握手?我說不知道。很多東西往深去了解,可能不是很好的學習方式。
但是Http基本的一些格式,響應和操作是要知道的。比如頭資訊大約有哪些,常用的返回碼,都是什麼意思,什麼時候會用到。使用中要注意什麼問題,比如習慣做類似while(try--)重試操作時,你專案中遇到過什麼問題等等。
回覆列表
如果你的目的是為了網站開發,那麼不需要深入學習,只要普通的學習一下就行,比如Request的方式,GET和POST的區別,引數如何獲取,COOKIES的原理與用途等即可。
如果你要從事的是伺服器端開發,是需要深入學習的!深入瞭解HTTP協議以後,你可以開發瀏覽器、網路爬蟲、網站伺服器,以及為其它程式語言寫一些HTTP網路庫。