# 前言
# 前言
“怎样成为一名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 敏捷开发