服務端編程(二)- 背景知識 - web 客戶端 服務端 前端 後端 相關概念解析

前言 ´・ᴗ・`

  • 本篇將簡化的介紹你在手機或者電腦或者iwatch等等瀏覽網頁所發生的事情 大佬請略過

  • 本文可以帶給你…

    • 客戶機 服務器是什麼
    • 什麼是前端開發、後端開發
    • HTTP是啥
    • 訪問一個靜態的web網頁 背後的流程是什麼

客戶機 服務器 前端 後端

上篇我們提到 internet使得全世界的電腦都可以聯網,那麼對於使用web服務的電腦來說,一般會有新的身份:客戶機 Client服務器 Server

相應的,爲客戶機而開發的就是客戶端編程(Clients-side programming),也就是所謂前端開發(front-end scripting)
而爲服務器開發就是服務端編程(server-side programming)也就是所謂的後端開發(back-end scripting)

客戶端通常還會有**瀏覽器(browser)**軟件來幫助你解析網頁(這樣你就能看網頁了)和 提交表單(比如註冊CSDN 填寫信息)等等

當你點擊我的博客 你就通過瀏覽器,向csdn的服務器發送了請求(requests),服務器必須響應response你的請求 也就是給你個回覆
成功的話,你就見到我的博文了,這就是服務器給你的response——當然是經過瀏覽器解析(parse) 渲染 (render) 後的結果.
失敗的話 有各種失敗的代碼,其中最常見的就是404 也就是你想要請求訪問的資源找不到(其實不一定是找不到 可能是有些東西不想給你 沒權限 你懂得)

好了 如果我們有自己的網站呢?首先,我們得有個服務器(雲服務器或者實體的服務器 其實就是另一臺電腦)。
我們的前端開發 編寫的.html .css .js都是放在哪裏呢?就是服務器。我們需要**上傳(upload)**這些東西到我們自己的服務器,這樣別人訪問我們的網站,我們服務器就會給他們,我們之前前端開發的這些文件(“他們”也就是 客戶
當然客戶要求一些別的東西 比如說下載電影啊 或者圖片什麼的 這就是其他網頁資源(assets)了,當然也是放在服務器上。
然後客戶通過瀏覽器就能看到我們設計的頁面
當然了 話說回來,你不可能讓服務器自動幫你做一些相應你客戶需求的事——這需要你編程解決,這就是後端開發。
所以一些個人網站的建造者,都是全棧工程師(前端後端都包了),當然現在有很多給你現成模板,讓你可以不用開發後端,問題是bug總會很多 也總不能夠滿足我們個體多樣化的需求——這也是爲啥我們要學習 服務端編程。

HTTP

HTTP(Hypertext Transfer Protocol) 其實就是一種協議,或者說是一種語言,讓你的客戶機和服務器通話(通信)

特點是 文本性的(textual) 無狀態的(stateless)

  • 文本性的 Textual
    所有命令都可是人可以閱讀的(英語 當然)
  • 無狀態的 Stateless
    服務器 客戶端都不會記錄之前的通訊情況——過去了的就過去吧
    因此 你想做一個有賬號密碼的網站,單單靠HTTP服務器是不可能的
    因此我們需要一個web application server
    我的理解是 是在傳統底層的web server軟件上封裝了更多東西 也就是個升級版

關於HTTP 有一些規則我們可以瞭解一下:

  • 只有客戶端可以發出HTTP 請求 也只有服務器能夠接收
  • 服務器必須應答(answer)所有的HTTP請求 只不過返回的是200還是404就不知道了
  • 服務器接到請求以後 就查自己的硬盤 看看相關資源有沒有 沒有的話返回404 有的話返回200 還有各種別的情況 我們初學知道這些就夠了

這裏我們可以發現 服務器與客戶機的區別 或者說 前端與後端的一個區別:
能否有足夠權限訪問操作系統
對於前端 也就面向客戶機 你想想網頁能夠控制你電腦多少呢?一般而言也就是簡單的文件訪問(文件系統 file system)
但是後端 我們服務器程序 能夠調節電腦的線程,控制CPU佔用 能夠調節系統資源來更好地相應 做一個棒棒的服務器

web是怎麼工作的呢?

我們把csdn當成靜態網頁的話 當你在瀏覽器地址欄輸入www.csdn.net 然後回車 所發生的事:

  • 你在瀏覽器地址欄輸入www.csdn.net 然後回車
    在這裏插入圖片描述

  • 瀏覽器首先向DNS服務器發送請求 讓他解析一下“csdn.net”具體對應哪個IP地址
    在這裏插入圖片描述

  • 瀏覽器得到IP地址以後,向那個IP地址發送HTTP 請求,要求csdn服務器發一份copy回來,於是你得到了這麼一堆文件(.html .css .js .jpg .png, etc)
    在這裏插入圖片描述

  • 然後瀏覽器渲染頁面 你就看到:
    在這裏插入圖片描述

總結 ´◡`

這節比較輕鬆 講述了一部分web的相關概念
下一節 將更加深入的講述web,比如網站 網頁 web服務器等等行話(jargon)

另外 服務端編程專欄 正在持續更新 敬請關注 感謝對阮菜雞的支持:) 我會盡力用更優質的內容幫助大家學習的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章