HTTP基礎

本博客著作權歸從這到那所有,轉載請注明出處

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 -Icurl --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一般有兩個作用。
第一個作用是識別用戶身份。
第二個作用是記錄歷史。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 學習資料: 《圖解Http》 正在學習了解OkHttp的知識,遇到了關于http的知識點時,都不知所云。百度到的東...
    英勇青銅5閱讀 3,810評論 7 12
  • 前言 本系列主要分析OKHttp源代碼的框架和設計思想,因為OKHttp實現(xiàn)了HTTP協(xié)議,所以在做源代碼分析之前...
    嘎啦果安卓獸閱讀 4,312評論 1 15
  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,821評論 2 56
  • 前言:最近發(fā)現(xiàn)自己在網(wǎng)絡相關這一塊基礎很是欠缺,所以準備花時間了解一下,本文主要是講http協(xié)議的一些基礎,和一些...
    justCode_閱讀 2,152評論 0 23

友情鏈接更多精彩內容