# 3.3 靜態內容與動態內容
## 3.3 靜態內容與動態內容
現在我們從編程實現的角度看一看服務器是如何響應客戶端請求的。當客戶端做出一個請求,比如
```
GET /index.html
```
服務器如何返回相應的資源?這取決于/index.html代表的資源是否含有服務器動態生成的內容。比如我們需要index.html包含服務器當前的時間:
```
<!doctype html>
<html>
<body>
現在是2016年 7月 3日 星期日 17時42分32秒 CST
</body>
</html>
```
每次GET /index.html都會得到不同的內容。這就是服務器生成的動態內容。相反,如果index.html包含的內容固定不變,如
```
<!doctype html>
<html>
<body>
Hello!
</body>
</html>
```
這就是靜態內容。
對于靜態內容,我們不需要花力氣去編程就能通過HTTP提供它們——現有的HTTP服務器,如Apache、Nginx等等都幫我們做好了:只要把這些靜態的文件存放在指定的目錄下(這些目錄由服務器的配置文件指定,如Apache的DocumentRoot或者Nginx的root參數),服務器就會用它們來響應HTTP請求。
動態內容則需要靠服務器端編程實現。
- 前言
- 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 敏捷開發