HTTP構成:由請求和響應構成
## 1、請求消息
### (1) 請求起始行
*1 請求方法

**1、GET:客戶端向服務器獲取資源時使用**
```
特點:
????--1、明文提交,待提交的數據會顯示在地址欄上
????--2、安全性低
????--3、提交數據有大小限制,限制為2KB
```
**2、HEAD**
```
向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。
這一方法可以再不必傳輸整個響應內容的情況下,就可以獲取包含在響應小消息頭中的元信息。
```
**3、POST:表示想傳遞數據給服務器時**
```
特點:
????--1、隱式提交,提交的數據不會顯示在地址欄
????--2、安全性較高
????--3、提交數據沒有大小限制
```
**4、PUT:向指定資源位置上傳其最新內容**
**5、DELETE:請求服務器刪除Request-URL所標識的資源**
**6、CONNECT:HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器**
**7、 OPTIONS**
```
返回服務器針對特定資源所支持的HTTP請求方法,
也可以利用向web服務器發送‘\*’的請求來測試服務器的功能性
```
**8、TRACE:回顯服務器收到的請求,主要用于測試或診斷**
```
注意!!!!
1)方法名稱是區分大小寫的,當某個請求所針對的資源不支持對應的請求方法的時候,
服務器應當返回狀態碼405(Mothod Not Allowed);當服務器不認識或者不支持對應的請求方法時,
應返回狀態碼501(Not Implemented)。
2)HTTP服務器至少應該實現GET和HEAD/POST方法,其他方法都是可選的,
此外除上述方法,特定的HTTP服務器支持擴展自定義的方法。
```
*2 請求URL
`http://localhost:83/ajax/01-http-php`
*3 版本協議
`HTTP:1.1`
### (1) 請求頭
```
(1)Host:localhost(指的是本機)
作用:告訴服務器請求那個主機(hostname)和端口號(port)
(2)Connection:keep-alive
作用:告訴服務器要進行持久連接服務器
(3)User-Agent
作用:告訴服務器自己(瀏覽器)什么類型
(4)Accept-Language:zh-CN
作用:告訴服務器自己能接受的自然語言
(5)Accept-Encoding:gzip
作用:告訴服務器能接受的服務器壓縮類型是什么
(6)Refere:????http://localhost:83/ajax/01-http-php/1.html
作用:告訴服務器請求來自哪個網頁
```
### (3) 請求主體
From?Data???(只有method為POST的時候才有請求主體)
## 1、響應消息
服務器向客戶返回消息,響應消息由三部分組成:
###?(1)、響應起始行
*1 響應狀態碼:告訴瀏覽器響狀態是什么
```
1xx:100-199?提示信息
2xx:200??成功響應
3xx:需要進行重定向??
301:永久重定向
302:臨時重定向
?304:Not?Modified
?4xx:客戶端請求錯誤
404:Not?Found??請求資源不存在
403:Forbidden???權限不夠
405:Method?Not?Allowed????請求方法不允許
??5xx:??服務運行錯誤
500:服務
```
###?(2)、響應頭
```
1.Date
作用:告訴瀏覽器,服務器響應時間(格林尼治時間)
2.Content-type:
??????作用:響應主體得類型有什么,告訴瀏覽器,應該用什么來解析
???????①?text/html:響應回來的數據是HTML文本
??????②?text/plain:響應回來得數據是普通文本
???????③?text/css:?響應回來的數據是css樣式
??????④?application/javascript:響應回來得數據是js腳本代碼
??????⑤?application/xml:響應回來的數據是xml格式的字符串
???????⑥?application/json:響應回來的數據是json格式的字符串
???????⑦?Image/jpeg:響應回來的數據是圖片
```
###?(2)、響應主體
Response??回來的主要內容
## 新增:3、緩存
什么:客戶端將服務器響應回來的數據進行自動保存,當再次訪問時,直接使用保存的數據??????????
```
優點:
?????(1).減少冗余數據的傳輸,節省客戶端流量
?????(2).可以節省服務器帶寬
?????(3).可以降低對服務器資源的消耗以及運行要求
?????(4).降低由于遠距離而造成的延時加載的問題
```
與緩存相關的消息頭
```
?????1).Cache-Control?消息頭
???????作用:從服務器將文檔傳到客戶端之時起,此文檔處于新鮮的秒數
???????語法:Cache-Control:?max-age=處于新鮮的秒數
???????max-age=0?代表每次都要從服務器下載新資源
?????2).Expires?消息頭
???????作用:指定緩存過期確切時間(也是格林尼治時間)
???????缺點:過期需要重新設置,比較麻煩
3)在網頁上設置消息頭
<meta http-equiv="消息頭" content="值">
<meta http-equiv="Cache-Control" content="max-age=3600"> conent里面放的是秒數
```
- git-第一天
- Git-第二天
- git-第三天
- http-基礎
- HTTP構成和狀態碼
- 瀏覽器輸入URL,經歷的過程
- TCP/IP 詳解三次握手 四次揮手
- http-DNS系統
- http與https之間的區別
- HTTPS握手和HTTP握手
- HTTP小試牛刀
- Tcp初探
- TCP報文格式
- HTML5
- HTML基礎
- Mock
- css 選擇器
- css 動畫
- css 定位
- position/display/float/z-index第一課時
- 行內、塊、脫標 三種狀態下的元素如何實現、水平、垂直居中
- clientHeight/offsetHeight/scrollHeight
- js 數據類型
- 變量提升
- 堆棧關系