# 前言
# 前言
“怎樣成為一名Web全棧工程師?”
“去做,你就能行。”
這答案深刻了——問題是從哪兒開始呢?本書試圖繪制一張技術地圖,讓你看清Web開發的全貌,同時它還有足夠的細節讓你找到通往目標的路徑。當然,無論怎樣,僅憑一張地圖是到不了目的地的,你得靠自己的雙腳走過去。
我假定讀者具有一定的編程基礎——你可以是業余的軟件開發者、計算機相關專業的學生,也可以是職業的軟件工程師——只要你想了解Web開發的全貌或者入門的路徑,都可以在這里找到有價值的東西。
我將從Web的基礎知識開始,依次介紹Web瀏覽器與服務器的開發要點、Web網站的組成與架構,最后是一些重要的開發/部署工具和技術。本書以一種循序漸進的方式展開,因此推薦讀者按順序閱讀,但你也可以直接跳入某一章節,僅當有問題時再回頭來看。
本書包含了一些示例代碼和命令,并且在正文或腳注中說明了執行它們的方法。讀者應盡可能動手輸入、運行一下這些代碼和命令;如果能進一步做一些修改,并思考、查看結果有何不同,那就更好了——這是閱讀、學習技術文檔的正確方式——經驗是無法從紙面上讀出來的,有一些坑你必須要踩過,才能說懂得。
本書并不綁定某一種編程語言——因此它不叫《XX Web開發指南》,XX可以是Java、PHP、Python或者Ruby等等。本書著重的是Web開發的原理、一般方法和工具。它們是一切Web開發的基礎,不論你使用何種編程語言。另一方面,在合適的地方,本書也對相關的編程語言和技術做了介紹,并給出進一步學習的建議。
本書也不是某種《技術大全》——它并不巨細靡遺地羅列所有Web相關的技術。相反,它從開發實踐的角度出發,力圖以簡明扼要的方式來介紹那些最重要、最常見的概念和技術,并引導讀者自己加深閱讀。
最后,我試著用一種“敏捷”的方式進行寫作:從一個MVP(最小可用產品)開始不斷迭代,并實時發布。因此在本書最終定稿前,提綱和內容都會不斷更新。另一方面,歡迎你隨時提出問題和建議:你的反饋將影響到本書的內容和組織。你可以通過郵件與我聯系:louirobert@gmail.com。
同時,歡迎你關注我的[博客](http://huiming.io)和[這個微博](http://weibo.com/githubercn)獲取更多技術咨詢。
本書永久域名:[getfullstack.com](http://getfullstack.com)
? 2016 [getfullstack.com](http://getfullstack.com)
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超鏈接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客戶端請求
- 1.5.2 服務器應答
- 1.5.3 進一步了解HTTP
- 1.6 HTTPS
- 2 Web瀏覽器
- 2.1 HTML
- 2.1.1 文檔類型聲明
- 2.1.2 標簽和屬性
- 2.1.3 文檔結構
- 2.1.4 DOM
- 2.1.5 進一步了解HTML
- 2.2 CSS
- 2.2.1 樣式與樣式表
- 2.2.2 樣式表語法
- 2.2.3 級聯樣式表
- 2.2.4 進一步了解CSS
- 2.3 JavaScript
- 2.3.1 script標簽
- 2.3.2 操縱DOM
- 2.3.3 jQuery
- 2.3.4 進一步了解JavaScript
- 2.4 Ajax
- 2.5 移動設備與響應式Web設計
- 3 Web服務器
- 3.1 方法與資源
- 3.2 狀態代碼
- 3.3 靜態內容與動態內容
- 3.4 編程語言與技術
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服務器架構
- 3.7 Web緩存
- 3.8 服務器推送
- 4 數據庫
- 4.1 關系型數據庫
- 4.2 NoSQL數據庫
- 5 Web服務器的其他組件
- 5.1 Cron
- 5.2 消息隊列
- 5.3 郵件服務器
- 6 開發工具與技術
- 6.1 Git
- 6.1.1 Git基礎操作
- 6.1.2 Git基本原理
- 6.1.3 進一步了解Git
- 6.2 敏捷開發