大家在工作中那些地方用到了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 |