← Career advice
Advice Columnist

HTTP:互聯網的共同語言

HTTP:互聯網的共同語言

互聯網的共同人類語言是甚麼呢?答案是英文,根據維基百科,世界上有五成四的網站都是以英文寫成,另外的四成六則以其他世界各地的語言寫成,所以說互聯網上的用家(即是各位)主要使用英文溝通也不為過。可是大家細想一下,互聯網上的電腦,又是怎樣互相溝通的呢?當你鍵入 https://www.google.com,為何遠在千里之外的Google伺服器,能夠與你桌上的手提電腦裏的Google Chrome溝通呢?這一切,要由互聯網誕生之初講起。

Source

 

互聯網之誕生

互聯網基於不同年代發明的科技所運作,現在大家早已習慣的光纖,是由光纖之父高錕於1966年最早提出光纖可以作為長距離高速通信的媒介,爾後有其他科學家再實作出可以傳輸資訊的光纖;而最早將多部電腦作為網絡連接的實驗,是美國於六零年代研發的ARPA網,及至七十年代已有歐洲的電腦包括在網絡中,大家可能聽過的TCP/IP,正正是由ARPA網於1983年所發展出來。最後一部份,由添‧柏納斯‧李發明了HTML、HTTP。最早的互聯網就終告成形。以下是一張顯示現代互聯網所基於的協定。

 

Source

 

上圖所顯示的,其實不同協定所堆疊出來的TCP/IP模型。協定(Protocol)就是一個通訊中兩方面都能理解的溝通型式,最形像化的例子,就 是兩方面中間的共同語言,正因整個模型是互聯網運作之基本組成部份,因此又名作互聯網協議(Internet Suite)。 TCP/IP其實包括TCP、IP兩種協定,分別份屬傳輸層(Transport Layer)、網絡層(Internet Layer),HTTP(超文本傳輸協定)。則屬於上面應用層(Application Layer)。

科技詞語解釋: 以上各種不同的層,概念相當抽象,即使大家直接閱讀維基百科也不易理解,理解的最佳方法,是以大家每季都要收到的水費單作為例子。

  • 應用層(Application Layer): 應用層就是當水務局計算了陳大文先生今季的水費,將水費單郵寄給陳大文先生。
  • 傳輸層(Transport Layer): 傳輸層就是郵差,專責將水務局的信件送到陳大文家中信箱。
  • 網絡層(Internet Layer): 網絡層就是郵寄地址,信件上必須寫好郵寄地址,才能準確送達。
  • 連結層(Link Layer): 連結層指的就是街道上的郵箱、陳大文大廈的郵箱,沒有郵箱,陳大文也不能收到水費單了。

由此例子可見,應用層關注的是最抽象將水費單送到陳大文手上,不會關心陳大文家中是否有郵箱。傳輸層也只會送信,信中內容,不管是律師信還是水費單,郵差也不在乎。 網絡層着重的是地址清晰及唯一,因此地址要寫成像荃灣海盛路11號One Midtown 27樓15-16室,不可以只寫成荃灣,不然信就送不到陳大文手上。連結層着重的 是硬件上是否無礙,郵箱爛了,就無法寄信。 每上一層,愈抽象;每下一層,愈具體。 愈抽象,則愈接近日常應用;愈具體,平時就不為人所見(你對上一次看過郵差正好派信給你是何時?)

要理解這個複雜的模型,由最上層的HTTP開始理解,就再好不過。TCP/IP將留待以後解釋。


HTTP

比較下面的傳輸層、網絡層,HTTP算是相當廣為人知,大家上網的網址前,都有http://或是https://的字樣,例如大家常去的https://www.google.com前面就有https://。HTTP的全名,是Hypertext Transfer Protocol,中文就是超文本傳輸協定。超文本的意思,就是指HTML,因為HTML的全名就是Hypertext Markup Language(超文本標記語言),而整個HTTP的運作方式都為了從伺服器將HTML及其他資料傳輸到瀏覽器之內,因此事如其名,是有其因由。

 

Source

 

HTTP的運作方法並不複雜,上圖就將整個過程,由輸入網址開始,直至網站就緒,分為五大部份

  1. 用戶於瀏覽器鍵入URL(全名是Uniform Resource Locator),通常URL都會有以下的格式

http://host:port/path/file

 

http://tecky.io:1234/

所謂Host(主機)就像大廈名,port就像單位名稱,一棟大廈可以有很多單位,同理一部主機也有很多不同的port,最常見的port就是80。 平常大家上網的時候,很少會真正看見:port的身影,如果沒有寫下像上邊tecky.io:1234的例子一樣寫下port,瀏覽器就會預設為80。 而對於https://開頭的網站來說,port就是443。

  1. 瀏覽器送出一個HTTP請求(HTTP Request)

HTTP請求的格式非常簡單,因為HTTP是一個文字為主(Text Based)的協定,以下是一個HTTP請求的例子。

GET / HTTP/1.1

Host: www.google.com

User-Agent: curl/7.58.0

Accept: */* en-US,en;q=0.9,zh-TW;q=0.8,zh;q=0.7

請求(Request)包含了瀏覽器傳送給伺服器的資訊,元數據(Metadata)例如語言、日期等則會放到HTTP標頭(Header)之中,而其他資訊則會放到 HTTP正文(Body)之中。當大家上載圖片時,圖片的內容就是放在正文之中。而大家經常於不同網站登入登出,該登入之狀態則是由一個 叫cookie的標頭所儲存,這正正是為何於公共地方使用無加密Wifi不安全,因為標頭資料可以輕易被竊取。

  1. 伺服器將URL映射到伺服器程式

伺服器程式(Server Software)與伺服器(Server)是常常被混用的兩個詞語,一般來說,伺服器指的是硬件,而伺服器程式指的就是在硬件運行專為了回答HTTP請求的軟件,因為此程式設計師常常會用Server一詞借代Server Software。PHP、NodeJS、Java、Python都是編寫伺服器程式常用的程式語言。而編寫此類軟件時,也常常需要不同的框架,較受歡迎的有:ExpressLaravelDjango等。 伺服器程式普遍都會接駁到資料庫,以儲存用戶之資料。

  1. 伺服器傳回一個HTTP答覆

伺服器根據請求內容的不同,回覆不同的HTTP答覆(Response),像請求一樣,HTTP答覆一樣有正文(Body)及標頭(Header)之分。通常網站會將內容放到正文之內。而同樣屬於元數據的資訊則會放到標頭之中。對應上面向Google的請求,以下正是由Google 伺服器而來的答覆:

HTTP/1.1 200 OK

Date: Mon, 25 Feb 2019 03:03:15 GMT

Expires: -1

Cache-Control: private, max-age=0

Content-Type: text/html; charset=ISO-8859-1

P3P: CP=”This is not a P3P policy! See g.co/p3phelp for more info.”

Server: gws

X-XSS-Protection: 1; mode=block

X-Frame-Options: SAMEORIGIN

Accept-Ranges: none

Vary: Accept-Encoding

Transfer-Encoding: chunked

 

<!doctype html><html …

答覆上面的是標頭,以下的是正文,正文由於實在太長,故此省略從簡,正文的內容,正是以HTML格式寫成。

  1. 瀏覽器讀取答覆,顯示網站

瀏覽器讀取了答覆,根據HTML的規則,將整個網站顯示出來,就成了大家習以為常的Google 搜尋器版面。

 

 

因此,簡簡單單的顯示一個網頁,確實蘊含着過去幾十年人類資訊科技發展的結晶,殊不簡單。

 

HTTP的版本

有甚麼比理解HTTP的運作方式更困難?就是要理解三個HTTP的運作方式。HTTP最常用的版本是HTTP/1.1也就是1.1版本,於1999年由互聯網協會所公佈。而及至2014年,又再發佈了HTTP/2作為最新的實作標準,要發佈新的標準,是因為現今的網站,與上世紀九十年代,已大相逕庭。HTTP/2的製定主要為了改善大網站載入速度較慢的問題,減少所需的請求數,節省載入時間,從而改善用戶體驗。而很多現有支援HTTP/2的伺服器及客戶端都原生支援加密通信,令互聯網更安全。 HTTP/2才支援了不久,出現在大家視野的,還有HTTP/3,HTTP/3最早由Google的工程師所開發,希望更進一步改善傳輸速度及於協定中提供安全保護。在2015年就已經開始了標準化的工作。

Source

總結

科技的發展,除了硬件愈來愈快,體積愈來愈小,效率愈來愈高之外,常常被人忽略的,其實是範式轉移(Paradigm Shift),HTTP的發展,正是隨著大家對網上應用(Web Application)的理解日益進步,才有今日的成果。大家下次瀏覽你最愛的網站,不妨停下來,想一想沒有HTTP、互聯網的世界,會是多麼的不同。



文章來源:Tecky Academy – Gordon Lau

呢篇文章係由Tecky Academy提供。如果你中意呢篇文章,您可以喺呢到睇更多佢哋嘅文章。

 

不要讓在亞洲的頂尖科技公司之中工作停留在夢想的階段。在GetLinks創立自己的履歷,並在完成履歷時選擇「我想跨國工作」一欄,今日就向你的夢想踏出第一步吧!

 

Keep reading

Related career advice

【職場心理學】上司話你唔夠狠,下屬話你唔撐佢哋——做中層,你係人肉避雷針
Advice Columnist

【職場心理學】上司話你唔夠狠,下屬話你唔撐佢哋——做中層,你係人肉避雷針

Head count凍結,上司call你入房話:「你自己諗辦法。」 下屬問你年加幾多,你知道答案,但唔敢講。高層宣布新政策,問有冇問題,你笑住話「冇」,但你心裡清楚返去個部門一定炸鍋。績效review,你要寫低屬下嘅不足,但寫嗰陣你係唔舒服嘅,因為佢哋真係有盡力。開完會,上司叫你「帶領好個team嘅方向」,但連你自己都唔知方向係邊。 你夾喺中間,上唔到、落唔得。 高層嫌你執行力唔夠;下屬覺得你唔夠幫佢哋發聲;HR話你要做好榜樣;另一半問你點解又係咁夜返屋企。某一日,你喺東鐵線車廂裡,有個陌生人跟你對眼笑咗一下——你差啲想喊。 有時喺輔導工作中,我遇到嘅中層 manager,坐低嘅第一句往往係:「我唔知自己係咪做錯咗啲乜。」 你以為係你管理技巧唔好?唔係嘅。喺心理學入面,呢個叫「情緒勞動」(Emotional Labor)——即係持續壓抑或管理自己嘅真實情緒,去配合組織對你嘅形象要求(Hochschild, 1983)。做中層嘅人,每日都要演一場無劇本嘅戲:對上管理期望、對下管理情緒、對外管理形象——而你自己嘅感受,係冇位置擺嘅。 長期嘅情緒勞動,係職場 burnout 最常見、又最容易被忽視嘅根源之一。 就好似一架升降機嘅緩衝彈簧——佢嘅功能係吸收衝擊、保護兩邊。但如果長期超重、冇保養,彈簧遲早會斷。 緩衝係你份工嘅一部分,但唔代表你要用自己嘅身心做消耗品。 有一個有用嘅覺察練習:每個星期,寫低三件「唔係我份工、但我一直係咁做緊」嘅事。唔係叫你即刻唔做,而係讓自己知道——你嘅邊界喺邊,你係幾時開始一點一點失去自己嘅。 覺察,係改變嘅第一步。 做中層嘅你,好少被讚,好少有人問你「你點呀」。 今日,我想問你:你點呀? 唔使答得好好聽。只係停一停,不加批判地承認:「係,我最近好攰。」 呢份誠實,係你對自己最大嘅善意。你唔係一個齒輪,你係一個人。 參考資料Hochschild, A. R. (1983). The managed heart: Commercialization of human feeling. University of California Press.Kahn, R. L., et al. (1964). Organizational stress: Studies in role conflict and ambiguity. Wiley.

升職加薪後,為何很多人反而更焦慮?
Advice Columnist

升職加薪後,為何很多人反而更焦慮?

上月專欄談到,在裁員、縮編及經濟不確定性下,職場人士需要建立「財務韌性」,讓自己即使面對收入中斷,仍然保有生活與選擇的空間。 但有趣的是,最近接觸不少客戶時,我發現另一個現象:有些人明明升了職、加了薪,甚至晉升管理層,焦慮感卻沒有減少,反而愈來愈重。 按常理推算,收入增加應該帶來更多安全感,為何現實往往相反?問題很多時不在收入,而在生活模式。 收入增加了,壓力卻沒有減少 曾有一位四十多歲的管理層客戶,十年間薪酬幾乎翻倍,由月入四萬元增至接近八萬元。表面看來事業發展理想,但當我們一起檢視財務狀況時,卻發現他的壓力比十年前更大。 原因很簡單。收入增加後,他換了更大的住宅,供款增加;子女升讀國際學校,教育開支上升;家庭旅遊、保險及生活消費亦同步提高。結果雖然收入增加了一倍,但每月可自由運用的現金流卻沒有明顯改善。 更重要的是,他開始不敢轉工。因為一旦收入出現空檔,整個家庭開支結構都可能受到影響。這種情況在中產及管理層人士之間其實相當普遍。 高收入,不等於高安全感 近年有一個財務規劃概念稱為「生活膨脹」(Lifestyle Inflation),意思是當收入增加時,支出亦同步上升,結果財務自由度未有真正改善。 從職涯管理角度來看,這亦是一種風險。不少人以為職場安全感來自更高薪酬或更高職位,但真正的安全感,很多時來自保留選擇權。 當你有能力拒絕不適合的工作、可以接受短暫轉型期、甚至有空間進修或探索新的職涯方向時,你才真正掌握主動權。相反,如果每月開支已完全依賴當前收入水平,即使職位再高,也可能陷入「不能停、不能轉、不能錯」的壓力循環。 那麼,升職加薪後應如何避免陷入這種情況?我認為有三個值得思考的方向。 第一,讓收入增長快於生活成本增長。 每次加薪後,未必要即時提升所有生活開支。把部分新增收入轉化為儲蓄、投資或退休規劃資產,長遠往往比單純增加消費更有價值。 第二,建立與收入無關的資產。 無論是投資組合、強積金、自願性供款,甚至其他長期資產,本質上都是將今天的工作收入轉化成未來的選擇權。 第三,定期檢視自己的「財務自由度」。 問自己一個簡單問題:如果今天失去工作,現有資源足夠支撐多久?答案未必需要非常充裕,但至少應讓自己擁有重新規劃下一步的時間。 職場發展當然重要,但我認為衡量成功不應只看職位高低或薪酬數字。真正值得追求的,或許不是賺得更多,而是在收入增加的同時,仍然保留選擇人生的能力。因為高薪不一定等於自由,而能夠掌握選擇權的人,往往才擁有真正的安全感。

【IT事務所】駕馭未知的浪潮:企業在持續進化的 AI 時代下的道德標準與管治之道
Advice Columnist

【IT事務所】駕馭未知的浪潮:企業在持續進化的 AI 時代下的道德標準與管治之道

在數位經濟與人工智能技術高速發展的今天,企業正面臨一場前所未有的技術變革。隨著大型語言模型與自主智能體(Agentic AI)的持續進化,企業在享受自動化與生產力提升的同時,也無可避免地遭遇了複雜的道德與管治(Governance)難題。若缺乏完善的監管框架,AI 的失控不僅可能引發公關危機與合規風險,更可能損害企業的長期競爭力。因此,深入理解並建立具備韌性的 AI 管治機制,已成為現代企業不可迴避的戰略核心。 企業在引入 AI 時首當其衝的挑戰便是算法偏見與歧視。AI 模型的輸出品質高度依賴於其訓練數據,若歷史數據本身潛藏社會偏見,AI 系統便會不加思索地放大並延續這些不公。以人力資本管理為例,曾有跨國企業開發 AI 簡歷篩選系統以加速招聘流程,卻發現系統因過去十年的技術職位多由男性擔任,進而「學會」對包含女性特徵詞彙的簡歷給予較低評分。這種情況若發生在銀行或保險業的信貸審批上,將對特定族群造成系統性歧視,進而引發嚴重的合規風險與潛在的金融爭議。 另一個不容忽視的難題是深度學習模型的「黑箱」特質與透明度不足。即使是系統開發者,往往也難以確切解釋 AI 是如何推導出特定結論的。在醫療健康診斷、保險理賠評估或金融爭議處理等需要高度問責與精確性的領域中,這項缺陷尤為致命。若 AI 系統拒絕了客戶的理賠申請或作出了不利的決策,企業卻無法向大眾與監管機構提供清晰的邏輯解釋,這將嚴重摧毀消費者信任。因此,「可解釋性 AI」(Explainable AI)的發展與應用,對於推動技術落地至關重要。此外,在日常營運中,員工若在未經授權的情況下使用面向公眾的生成式 AI 工具,極易在不知不覺中輸入企業機密或客戶的敏感數據,這凸顯了防範數據隱私與商業機密外洩的迫切性。 面對上述挑戰,企業必須摒棄僵化的政策,轉而建立一套動態且跨部門的 AI 管治框架。AI 的應用早已超越單一資訊科技部門的範疇,企業應籌組涵蓋技術、法務、合規、人力資源及業務代表的專責委員會,共同制定符合企業核心價值觀的 AI 使用政策。同時,企業必須實施分級風險評估機制,針對不同應用場景採取差異化管理。例如,用於撰寫一般行銷文案的低風險系統可採常規監管;但涉及客戶信用評分、自動化醫療決策等高風險領域,則必須強制進行嚴格的「偏見審計」,並確保人類在決策流程中保留最終決定權。 在技術部署與企業文化層面,企業應積極引入私有化與企業級的 AI 解決方案,透過安全的隔離環境處理敏感數據,從根本上阻絕資料外洩的風險。然而,技術的防護仍需配合持續的內部審查與教育訓練。由於 AI 模型會隨著時間推移產生「數據漂移」(Data Drift)導致預測失準,企業必須定期對系統進行回溯測試。更重要的是,管治不僅是限制,更是賦能。企業應致力培養全體員工的數位素養,教導他們識別輸入敏感資訊的風險,並學會批判性地評估 AI 生成的結果,而非盲目信賴。 總結而言,在數位轉型的浪潮中,AI 的管治與道德標準絕非阻礙創新的絆腳石,而是企業實現永續發展(Sustainability)的堅實護城河。一間能夠負責任地運用 AI、嚴格保障數據隱私並確保算法公平性的企業,將能在未來競爭激烈的市場中贏得深厚的社會信任與品牌價值。唯有將「道德設計(Ethics by Design)」的理念深深植根於 AI 應用的每一個環節,企業方能在這場持續進化的技術革命中穩健前行。

HTTP:互聯網的共同語言 | CPJobs Career Advice