標籤:

大家在工作中那些地方用到了http協議的細節?

平常對http協議就停留在一些常用的status code上,比較好奇這些知識在日常工作做哪些方面會較多用到?


謝邀,但我有點不知道該怎麼回答。我能舉出一些例子,說明你在工作中什麼時候會用到 http 知識(這其實跟小公司大公司沒關係,調試本地程序發現 rpc 跨域失敗,查一下伺服器 access-origin 策略,這在小公司就用不到嗎),但是我不覺得這是要求前端懂 http 的原因。

前端說白了在幹什麼?絕大部分前端程序,無非是根據用戶操作,向伺服器發送 http 請求,再處理收到的數據而已。

然而作為前端,你不知道你發出去的是什麼,也不知道收到的是什麼……這不太合適吧?

一般來說在一個層面上開發程序,總需要你懂一點下面一層的知識,做應用層協議棧的要懂一點tcp/udp,做 C/C++ 的要懂一點彙編,都是一樣的道理。

層次化的封裝結構,提供給你的平台永遠是:屏蔽了大部分而非全部底層細節,同時屏蔽了大部分在底層看來自然而然的分析手段。所以呢,為了應付平台沒有屏蔽的那部分底層細節,以及擁有一部分從底層分析問題的視角,改懂的還是要懂點。

至於你強調的大公司……這麼說吧,他們強調對 http 的要求,恰恰是因為你不會時常用到它。

大公司提供的是溢價的薪資和穩定的崗位(不要和那些明星 startup 比),作為回報,尋找的是超出崗位基本要求的人才,希望的是你除了做好基本工作還能帶來額外貢獻,這是自然而然的。如果一個和你的工作息息相關的技術領域,僅僅是因為開發平台封裝的比較好以至於你不會時常用到它,你就允許自己不懂,大公司首先懷疑的是你的學習能力和生活觀。

況且 http 又不難……


作為一隻前端,昨天剛學習了一下If-None-Match和ETag...因為我們的server決定用200和304來區分兩種不同的響應結果…

我想說的是,做久了,總會用到些奇奇怪怪的東西,如果你會,就不用像我一樣花兩個小時去翻文檔和嘗試…


推薦閱讀:

golang net/http的小問題?
想寫個web伺服器,用Go語言實現,需要有哪些前提知識呢?
怎麼在Linux操作系統搭建HTTP伺服器?
這種情況下,304還是200更好?
HTTP冪等性概念?

TAG:HTTP |