本博客著作權歸從這到那所有,轉載請注明出處
HTTP基礎
HTTP:Hyper Text Transfer Protocol:超文本傳輸協(xié)議
服務器
定義:一個管理資源并為用戶提供服務的機器。服務器在硬件和軟件上都與個人PC不同。
硬件:具有較高的計算能力,能夠提供給多個用戶使用。需要7X24小時的連續(xù)工作,更穩(wěn)定。
軟件:服務器軟件工作在客戶端-服務器或瀏覽器-服務器的方式,有很多形式的服務器,比如:網(wǎng)頁服務器,文件服務器。
DNS
網(wǎng)域名稱系統(tǒng)(Domain Name System)是互聯(lián)網(wǎng)的一項服務。作用是將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫。
比如我們通常訪問一個網(wǎng)站的時候,是在瀏覽器的地址欄里輸入網(wǎng)址,當我們在輸入baidu.com這個網(wǎng)址的時候,瀏覽器會向域名服務器去查找有沒有這條記錄。我們用ping可以返回網(wǎng)址的IP:

我們直接輸入圖中的220.181.57.217(各地區(qū)有所不同)這個IP地址也是可以訪問的。因為IP地址是很難記住的,所以網(wǎng)址可以讓我們更好的記住并訪問。
一個網(wǎng)址可以對應多個IP,同樣的一個IP可以對應多個網(wǎng)址。
端口
端口是服務器啟動服務的時候所占用的端口,依照互聯(lián)網(wǎng)傳輸層TCP/IP協(xié)議不同的協(xié)議通信,都有不同的對應端口。一個端口對應一個服務。
0-1023為保留端口。
常用的端口:
- 21:FTP
- 53:DNS
- 80:HTTP
- 443:HTTPS
- 1080:SOCKS代理
請求&響應
客戶端向服務器發(fā)送請求,服務器接收到請求之后給客戶端響應客戶端所需要的內容。
分析請求

一個瀏覽器的請求
GET /index.html HTTP/1.1
Host: 101.200.33.143:9999
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, gzip
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4,zh-TW;q=0.2
Content-Type: application/x-www-form-urlencoded
請求主要分為四個部分:
第一部分:請求行 GET /index.html HTTP/1.1 動詞 URL 協(xié)議版本/版本號
第二部分:請求頭(請求頭部有很多個)
Host: 1.2.3.4
Accept: html, xhtml, xml
User-agent: Chrome / Mac
定義第四部分格式:application/x-www-form-urlencoded
第三部分:回車
第四部分:消息體。比如username=xxxx&passwd=yyyy
分析響應
響應頭對應請求頭也有四部分:
第一部分:狀態(tài)行: 協(xié)議 狀態(tài)碼 狀態(tài)描述
第二部分:響應頭:
Content-type: text/html; charset=utf-8
Server: bfe/1.0.8.18
Date: Fri, 24 Feb 2017 13:05:48 GMT
第三部分:回車
第四部分:消息體
<!DOCTYPE html>
<html>
......
</html>
在命令行中使用 curl -I 或 curl --head 獲取響應頭

curl -D - 可以獲取到響應頭和響應體

常見狀態(tài)碼
| 狀態(tài)碼 | 英文含義 | 中文含義 |
|---|---|---|
| 200 | OK | 請求已成功,請求所希望的響應頭或數(shù)據(jù)體將隨此響應返回。 |
| 301 | Moved Permanently | 被請求的資源已永久移動到新位置,并且將來任何對此資源的引用都應該使用本響應返回的若干個URI之一。 |
| 302 | Found | 請求的資源現(xiàn)在臨時從不同的URI響應請求。 |
| 304 | Not Modified | 如果客戶端發(fā)送了一個帶條件的GET請求且該請求已被允許,而文檔的內容(自上次訪問以來或者根據(jù)請求的條件)并沒有改變,則服務器應當返回這個狀態(tài)碼。 |
| 403 | Forbidden | 服務器已經(jīng)理解請求,但是拒絕執(zhí)行它。 |
| 414 | Request-URI Too Long | 請求的URI長度超過了服務器能夠解釋的長度,因此服務器拒絕對該請求提供服務。 |
| 500 | Internal Server Error | 服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。 |
| 502 | Bad Gateway | 作為網(wǎng)關或者代理工作的服務器嘗試執(zhí)行請求時,從上游服務器接收到無效的響應。 |
HTTP請求方法
| 動詞 | 含義 |
|---|---|
| POST | POST方法用于將實體提交到指定的資源,通常導致狀態(tài)或服務器上的副作用的更改. |
| DELETE | DELETE方法刪除指定的資源。PUT方法用請求有效載荷替換目標資源的所有當前表示。 |
| PUT | PUT方法用請求有效載荷替換目標資源的所有當前表示。 |
| PATCH | PATCH方法用于對資源應用部分修改。 |
| GET | GET方法請求一個指定資源的表示形式. 使用GET的請求應該只被用于獲取數(shù)據(jù). |
| HEAD | HEAD方法請求一個與GET請求的響應相同的響應,但沒有響應體. |
| TRACE | TRACE方法沿著到目標資源的路徑執(zhí)行一個消息環(huán)回測試。 |
| OPTIONS | OPTIONS方法用于描述目標資源的通信選項。 |
| CONNECT | CONNECT方法建立一個到由目標資源標識的服務器的隧道。 |
Cookie是什么
簡單來說,cookie就是瀏覽器存儲在用戶電腦上的一小段文本文件。
1.瀏覽器訪問服務器后,服務器傳給瀏覽器的一段數(shù)據(jù)。
2.瀏覽器需要保存這段數(shù)據(jù),不得輕易刪除。
3.此后每次瀏覽器訪問該服務器,都必須帶上這段數(shù)據(jù)。
cookie一般有兩個作用。
第一個作用是識別用戶身份。
第二個作用是記錄歷史。