有沒有人能夠把網站啟動並執行原理說的通俗點的?

來源:互聯網
上載者:User
針對目前流行的技術;具體一點的。
比如:HTML、CSS、PHP、JavaScript、資料庫、XML、DOM 等都是具體做什麼的,他們相互之間如何協同工作的。輸出的 web 頁內容是如何更新的。
程式設計語言在背景程式中扮演的都是什麼角色,為什麼說不論是什麼程式設計語言都可以用作伺服器語言,關鍵是看哪種語言最適合。

我知道回答這個問題需要寫很多,會很辛苦。小弟先謝過各位大俠了。

回複內容:

想說你訪問網站的實質吧。你通過瀏覽器(輸入地址),瀏覽器首先向你設定的dns伺服器發出請求,dns伺服器返回網站的實際ip地址。因為互連網的ip地址唯一,依據這個ip,你的電腦能訪問到這個ip所提供的公用資源,這裡具體就是一些網站檔案(js,html,css,img)。也就是一個ip就是一台電腦,你的請求實際上是訪問另一台電腦的檔案。

現在說下伺服器,常用的有apache,nginx,伺服器就是目的ip機上的一個守護進程,它時刻監控來自互連網的請求,根據請求返回相應的內容,正如前面你說的這些檔案都是想伺服器發出請求,再給你返回,返回的html、css、javascript交給瀏覽器來解析,呈現出的就是你所看到的網頁內容。

那麼php與資料庫呢?前面的只是些靜態檔案,如果要和伺服器動態互動呢,就得用到指令碼語言,目前比較流行的有php,.net,,jsp,用cgi的也不少。通過訪問伺服器端得指令檔(比如:http://t.cn/login.php ),那麼指令碼是有訪問伺服器本地資源,資料庫等的許可權,根據你請求的內容,指令碼解析後返回給伺服器,伺服器再返回給你。

資料庫主要用來動態儲存裝置資料,方便尋找,插入,查詢,刪除等操作。mysql,oracle,sql server,以及一些nosql產品都是資料庫。

xml主要用來做資料交換,儲存配置資訊,資料。也一般的檔案,但有自己的書寫規範,皆有一整套的解析引擎進行內容解析。指令碼語言,或是才c++,,java都可以操作xml檔案。

dom稱為節點,這是xml下的概念,因為xml未見是標籤式的,html算是它的一個分支,用於更加特定的領域,開啟一個網頁,右鍵,選擇查看源碼,你就能看待閉合標籤式的xml檔案,為了索引每個內容點,就引入了節點的概念(dom),通過dom的逐級尋找,可以方面,快速定位xml元素。 回樓主:
通俗點的?:以Win\IIS\PHP\mysql\IE為例
1\小明開啟電腦
2\運行瀏覽器
3\開啟一個網址 http://zhihu.com/
4\小明的電腦通過DNS尋找到此網址指向的IP地址
5\瀏覽器向此IP地址發出訪問http://zhihu.com的請求
6\http://zhihu.com web伺服器軟體接收到請求後查詢是否有網站綁定了這個網域名稱
7\如未綁定 返回錯誤碼或預設網站(設定允許的話) 如有綁定 執行No.8
8\http://zhihu.com 這個網址是一個跟目錄 並非一個檔案 web伺服器軟體查詢設定的預設檔案 如index.php
9.web伺服器判斷檔案類型和對應的解譯器 如果是php 就通知php.exe(php-cgi.exe):“哥們 有老外來信 你給翻譯一下” php收到通知後把php檔案中的php法語解釋後(如果有資料庫連接資訊和資料庫查詢資訊 再通過對應的連結驅動通知他其他資料庫兄弟 執行查詢得到結果並返回給php) php解釋完php文法 把結果交給iis iis等php忙活完之後 這時手裡就剩下了html\js\css 這三種用戶端瀏覽器直接執行的檔案 配合php翻譯的片段 整理完整後 返回給用戶端
10.No.6-9時小明的瀏覽器一直在等待 即瀏覽器狀態:“正在尋找網站”、“正在連結網站”、“已找到網站正在等待響應”、“下載資料”、“解析、渲染、執行、列印輸出”……
11.至此,小明就可以看到http://zhihu.com的首頁……

回覃明圓:
再高深的技術 都可以變得親民
能不能變是一回事(能變!)
有沒有必要變是另一回事(無意義!)
此問題就像吃肉需要先瞭解此動物的生活規律、思想情操……你會去做嗎?如果你只對電腦有興趣 對動物沒興趣 那麼對動物有興趣的人怎麼辦 他們能去找親民的動物諮詢探討嗎

技術層面的問題 沒有任何人可以做到面面俱到 除了本身職業方向外 一生百年而已 誰能真做到上知天文,下知地理,中曉人和,明陰陽,懂八卦,知奇門,曉遁甲,運籌帷幄之中,決勝千裡之外……中華5000年也不過出了諸葛孔明一人

另外 並非他不親民 而是相同親民的東西太多了 你沒有發現 如果你真有興趣 這個世界上有太多的資源可以供你學習掌握 不要怪技術不親民 只是你沒學到。
同時,技術(科學)知識跟人文知識、民風民俗不同 他必然會有一定的嚴肅性、嚴格性

最後:歐美國家對技術的認識 比我們國家要好一些 你可以去歐美各大學的網站公開資訊及公開課程尋找一些你感興趣的東西 伺服器和用戶端:這是你要明白的第一個概念,現在你看到的知乎網就是把代碼和資料放在伺服器上,然後用戶端的你在用一種叫做browser(瀏覽器)的玩意,你也許是用IE,也許用firefox,也許用chome,總之他們都是browser,browser的作用就是向伺服器發送請求(request)和接收請求結果(response),比如 你點擊網站的一個連結一個按鈕,向伺服器發出一個行為請求,有的請求裡面帶有資料的,比如你發一條微博,你無非是要請求伺服器:給我微博資料庫裡增加一條微博資料,增加的內容就是向伺服器請求的內容。
php:伺服器收到請求後,他要認識解析這個請求然後開始action,指導他怎麼做事情就是一些代碼,比如php代碼,asp代碼,這些都是伺服器的程式設計語言,有二十三種語言都可以,這些語言會被其對應的應用伺服器軟體認識,你的一次請求,伺服器會解析運行你的請求,然後返回來一些圖片,一些HTML檔案,css檔案,javasript指令碼,總之可以說是一個網頁需要的檔案吧,返回到用戶端。比如前面的請求;給我微博資料庫裡增加一條微博資料,這個時候伺服器要去操作資料庫,把資料庫加一條記錄,如果成功,返回結果說操作成功等。
html,css:請求結果返回到用戶端之後,這些檔案只有瀏覽器能認識解析,瀏覽器把他們拼裝好,html主要是網頁裡面有什麼內容,css是修飾這些內容,比如文字圖片怎麼排版,文字有多大,背景顏色,一些網頁的動態效果由返回的js控制。這個時候,人就能夠很直觀地閱讀伺服器返回的結果內容了。
javascript:有的時候你不能什麼事情總是去找伺服器,伺服器也覺得麻煩,這個時候,javasript應運而生,它是一種用戶端指令碼代碼,是瀏覽器來執行的,就是說有些小事情他給你立即做了,不需要老遠地去找伺服器。比如你有個時候填寫密碼,密碼的格式不正確,填寫完提交,js指令碼攔住先檢查一遍合不合格,合格就通過去找伺服器,不合格直接打回提醒你不合格。js能做的事情很多,它會使你的網頁動起來。
資料庫:資料庫可以把他看作一個檔案館,一切的資料都在資料服務器硬碟裡整理擺放得井井有條,資料庫軟體裡還一些繁忙的檔案管理員,有的負責取存刪資料,有的負責備份或者資料安全等等。外面的軟體,比如伺服器通過“介面”通道向資料庫進行主要是一些資料操作比如增刪改讀等。
xml:資料是有一種物理格式的,就是說資料以某種結構組織起來的,比如你的world文檔,doc可以看成一種資料的物理格式,電腦世界本質就是資料,各種各樣結構和格式的資料。xml這種資料格式的好處就是一是好多好多軟體都認識他,是一種公開的格式,是一種資料的通用格式,xml可做各種軟體的資料通訊,二是好讀,符合人的閱讀習慣。比較好操作,程式設計語言直接就可以操作,一般做為軟體的設定檔來用。
dom節點:就是xml這類資料的組織形式,xml資料就是一個節點一個節點形成的,節點套節點。還有節點為什麼這麼重要,因為web的基礎html也是一種變相的xml資料格式。
差不多這樣,很多還是說得不夠嚴謹,見笑了。 網站是這麼啟動並執行:

使用者的瀏覽器(用戶端)通過網路(協議)向網站伺服器發送請求,伺服器根據使用者的請求(以及伺服器自己的資料、目前使用者的狀態)產生網頁內容,通過網路(協議)發送回瀏覽器,瀏覽器把伺服器送來的網頁(HTML格式)解釋執行並渲染,終端使用者看到了網頁的樣子。

網路通訊協定:http

用戶端:html(dom)、css、javascript、xml

伺服器端:資料庫、http-server 龍成亮 已經很好地解釋了網站程式的基本原理

我這裡補充一下,按我的理解,說得簡單一點,一個網站=伺服器+網域名稱+網站程式和資源。
要搭建一個網站,你需要準備好我上面提到的這三部分
  1. 伺服器,用來存放網站程式並讓網站程式正常運轉,可以理解為串連在互連網上的一台24小時都在運轉的電腦,這台電腦的IP一般是固定的(當然也有通過軟體來實現用動態IP做伺服器的,此處暫且不論),這樣互連網上的其他使用者才能準確找到伺服器上的資源。
  2. 網域名稱,因為IP比較難記,所以使用網域名稱來解析指向伺服器IP,伺服器那邊再綁定網域名稱,這樣就可以通過易於記憶的網域名稱來訪問伺服器上的資源了.網域名稱可以在網域名稱註冊商網站註冊使用。如http://zhihu.com是在網域名稱註冊商http://godaddy.com處註冊的。
  3. 網站程式,就是要實現一個網站功能所需要的程式和資源的集合. 網站程式和資源是存放於伺服器硬碟上的。

舉例說明:例如要搭建http://zhihu.com這個網站,那麼需要以下步驟:
  1. 購買一台伺服器(小網站的話也可以使用虛擬機器主機或VPS),配置好伺服器資訊;
  2. 開發好網站程式,將網站程式上傳到伺服器,配置好資料庫連接等資訊;
  3. 到網域名稱註冊商網站註冊http://zhihu.com這個網域名稱(如果網域名稱已經被別人註冊了而你又很想要那可以花錢聯絡網域名稱持有人買下來),將網域名稱解析到伺服器IP,OK,這樣一個http://zhihu.com網站就搭建好了,下一步就是宣傳運營吧。


補充一下,如果你用的是國內伺服器,那麼網域名稱還要先備案才可以接入哦。另外插播一句:現在的網站備案制度非常折騰非常變態哦 確實,我有很多疑問。上網查了很多資料。但很多問題還是半懂不懂的。
比如電腦的運行原理。還是有人說的能讓老百姓明白的。
我覺得技術無論多麼高深,都應該是具有“親民”的一面,而不是高高在上。 中文版地址:
>http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/#Resources

英文版地址:
>http://taligarsiel.com/Projects/howbrowserswork1.htm 其實這應該不算問題吧,不清楚你現在是都學過一遍不知如何歸類?還是準備開始學習?
HTML CSS JS這些在用戶端運行,PHP則在伺服器解釋運行~相當於每次你用瀏覽器發送一個請求,指定的伺服器會做出響應,交給PHP處理從而得到HTML,CSS和其他等等檔案(包含圖片啊JS檔案啊等等),然後用戶端下載這些二進位檔案!
在這個流程裡,應該在PHP處理完返回資料的地方做為分水嶺!前後端各自為營~

不一定對,差不多就這樣吧呵呵~ 你既然是問網站的工作原理,這裡以最流行的動態網站工作原理來說明了,以PHP為例。仔細看圖。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.