一 什么是Http?
? ? HTTP是一個客戶端終端(用戶)和服務(wù)器端(網(wǎng)站)請求和應(yīng)答的標(biāo)準(zhǔn)校仑。
? ? ?HTTP 的作用就是指導(dǎo)瀏覽器和服務(wù)器如何進行溝通。
二http的工作原理
? ? ?由HTTP客戶端發(fā)起一個請求恰矩,創(chuàng)建一個到服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接。HTTP服務(wù)器則在那個端口監(jiān)聽客戶端的請求憎蛤。一旦收到請求外傅,服務(wù)器會向客戶端返回一個狀態(tài),比如"HTTP/1.1 200 OK",以及返回的內(nèi)容萎胰,如請求的文件碾盟、錯誤消息、或者其它信息奥洼。
三 .請求 (發(fā)生在瀏覽器端)
1請求方法
? ?①get? 獲取 (安全性不夠高)
? ?②post 新增
? ?③put? ?全局更新?
? ?④patch? 局部更新
? ?⑤defect? ?刪除
2 請求事例
? ?curl -s -v -H "可以添加任何你想添加的文本/不添加" -- "https://www.baidu.com"
3 請求的格式
1 動詞(1.中的方法) 路徑(/) 協(xié)議/版本? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? POST / HTTP/1.1
2 Key1: value1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Host: www.baidu.com
2 key2 :value2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? User-Agent: curl/7.54.02? ? //指定第四步的類型
2 Host: www.baidu.com? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.......
2 User-Agent: curl/7.54.0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ..........
3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(空格,用來分割2 和4 灵奖,必須存在)
4 要上傳的數(shù)據(jù) (可以沒有)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tony sun .......
四 響應(yīng)(服務(wù)器端)
1響應(yīng)的格式
1 協(xié)議/版本號 狀態(tài)碼 狀態(tài)解釋? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HTTP/1.1 302 Found
2 Key1: value1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Connection: Keep-Alive
2 Key2: value2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Content-Length: 17931
2 Content-Length: 17931? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Content-Length: 17931
2 Content-Type: text/html? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Content-Type: text/html
3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?..........
4 要下載的文件?
2??狀態(tài)碼
? ① 1 xx 表示臨時的響應(yīng)嚼沿。(較少使用)
? ②2 xx 成功?
? ③3 xx? 重定向? ?瀏覽器必須請求服務(wù)器上不同的頁面
? ? ? ?301 永久移動? ? ? 換了個域名
? ? ? ?302? 對象已移動? ? 被封
? ? ? ?304 未修改? ? ? ? 上次已經(jīng)給出響應(yīng)
? ? ? ?307 臨時重定
? ④400 失敗
? ? ? 404 請求失敗,請求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)瓷患。
? ?⑤ 500? 服務(wù)器端失敗
五 如何使用Chrome開發(fā)者工具來查看請求和響應(yīng)的內(nèi)容
1.在chrome中打開一個頁面骡尽,右鍵后點擊檢查
2在頁面中點擊network 后刷新頁面?
3點擊第一條數(shù)據(jù) 后右方會出現(xiàn)頁面的請求和響應(yīng)??
六關(guān)于curl的學(xué)習(xí)
? curl是一個利用URL規(guī)則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具擅编。它支持文件的上傳和下載攀细,是綜合傳輸工具,但按傳統(tǒng)爱态,習(xí)慣稱url為下載工具谭贪。
①語法:# curl [option] [url]
②常見參數(shù)
-A/--user-agent 設(shè)置用戶代理發(fā)送給服務(wù)器
-b/--cookie cookie字符串或文件讀取位置
-c/--cookie-jar 操作結(jié)束后把cookie寫入到這個文件中
-C/--continue-at 斷點續(xù)轉(zhuǎn)
-D/--dump-header 把header信息寫入到該文件中
-e/--referer 來源網(wǎng)址-f/--fail 連接失敗時不顯示http錯誤
-o/--output 把輸出寫到該文件中
-O/--remote-name 把輸出寫到該文件中,保留遠(yuǎn)程文件的文件名
-r/--range 檢索來自HTTP/1.1或FTP服務(wù)器字節(jié)范圍
-s/--silent 靜音模式锦担。不輸出任何東西
-T/--upload-file 上傳文件
-u/--user 設(shè)置服務(wù)器的用戶和密碼
-w/--write-out [format] 什么輸出完成后
-x/--proxy 在給定的端口上使用HTTP代理
-#/--progress-bar 進度條顯示當(dāng)前的傳送狀態(tài)
③ 基本用法
# curl http://www.linux.com?
由于安裝linux的時候很多時候是沒有安裝桌面的俭识,也意味著沒有瀏覽器,因此這個方法也經(jīng)常用于測試一臺服務(wù)器是否可以到達(dá)一個網(wǎng)站(測試服務(wù)器是否可用)