1. 程式人生 > 資料庫 >mysql的MHA高可用

mysql的MHA高可用

目錄

HTTP簡介

HTTP是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,用於瀏覽器與全球資訊網(World Wide Web)伺服器之間進行超文字傳送的協議。

HTTP是一個使用TCP作為傳輸層協議。


HTTP工作原理

HTTP用於C-S(客戶端-伺服器)架構。瀏覽器作為客戶端向Web伺服器傳送請求,Web伺服器收到請求後返回響應給瀏覽器。

常用的Web伺服器有:Apache、ISS等。

HTTP的預設埠號為80。

HTTP協議的三個特點:

  1. 無連線:“無連線並不是真的無連線”,而是每次連線只處理一個請求。請求時建立連線,請求完釋放連線 ,伺服器處理完客戶端的請求,並收到應答後,即斷開連線。這種方式可以節省傳輸時間。當然,HTTP也提供了Keep-Alive功能來避免重複建立連線。
  2. 允許傳輸任意型別的資料物件:資料傳輸的格式由MIME指定。
  3. 無狀態:無狀態是指HTTP對事物處理沒有記憶能力,伺服器不儲存客戶端的狀態。缺少狀態即意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。Cookie技術與Session技術用於保持HTTP連線狀態。

HTTP協議的通訊流程:

參考資料:Cookie與SessionHTTP協議


HTTP訊息結構

請求訊息

請求訊息自客戶端發往伺服器,請求訊息由以下四個部分構成:

  • 請求行(request line)
  • 請求頭部(header)
  • 空行
  • 請求資料

響應訊息

HTTP響應由四個部分構成:

  • 狀態行
  • 訊息報頭(header)
  • 空行
  • 響應正文

例項

請求報文:

GET /hello.txt HTTP/1.1User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3Host: www.example.com
Accept-Language: en, mi

響應報文:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: ApacheLast-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"Accept-Ranges: bytes
Content-Length: 51Vary: Accept-EncodingContent-Type: text/plain

HTTP請求方法

根據HTTP標準,HTTP提供了多種請求方法,
HTTP1.0定義了三種請求方法:GET, POST和HEAD方法。
HTTP1.1新增了六種請求方法:OPTION, PUT, PATCH, DELETE, TRACE和CONNECT方法。

方法 描述
GET 請求指定頁面資訊,並返回主體
POST 向指定資源提交資料處理請求。資料被包含在請求體中。POST請求可能導致新資源的建立或已有資源的修改
HEAD 類似於GET請求,不返回響應主體,只用於獲取報頭(header)
PUT 用從客戶端向伺服器傳送的資料取代指定的文件內容
CONNECT HTTP/1.1協議中預留給能夠將連線改為管道方式的代理伺服器
DELETE 請求伺服器刪除指定的頁面
OPTIONS 允許客戶端檢視伺服器的效能
TRACE 回顯伺服器收到的請求,主要用於測試或診斷
PATCH 對PUT方法的補充,用來對已知資源進行區域性更新

後來又新增了6種請求方法:

方法 描述
MOVE 請求伺服器將指定的頁面移至另一個網路地址
COPY 請求伺服器將指定的頁面拷貝至另一個網路地址
LINK 請求伺服器建立連結關係
UNLINK 斷開連結關係
WRAPPED 允許客戶端傳送經過封裝的請求
Extension-method 在不改動協議的前提下,可增加另外的方法

參考資料:GET方法與POST方法的區別

HTTP 響應頭資訊

下面這個表格是介紹了HTTP的一些響應頭資訊:

應答頭 說明
Allow 伺服器支援的請求方法(GET, POST...)
Content-Encode 文件的編碼方式。只有在解碼後才可以得到Content-Type指定的型別內容
Content-Length 表示內容長度。只有在瀏覽器使用持久HTTP連線時才需要該資料
Content-Type 表示後面的文件屬於什麼MIMEl型別
Date 當前的GMT時間
Expires 應該在什麼時候認為文件已過期,從而不再快取它
Last-Modify 上次修改的時間
Location 表明了客戶應該到哪裡取提取文件
Refresh 表示瀏覽器應該在多久時間後重新整理文件,以秒計
Server 伺服器的名字
WWW-Authenticate 客戶應該在Authenticate頭中提取什麼型別的授權資訊

HTTP狀態碼

1xx(臨時響應)

返回碼 功能 說明
100 繼續 表示伺服器已收到請求的第一部分,正在等待其餘部分
101 切換協議 請求者已要求伺服器切換協議,伺服器已確認並準備切換

2xx(成功)

返回碼 功能 說明
200 成功 伺服器已成功處理了請求。通常,這表示伺服器提供了請求網頁
201 已建立 請求成功並且伺服器建立了新的資源
202 已接受 伺服器已接受請求,但尚未處理
203 非授權資訊 伺服器已成功處理了請求,但返回的資訊可能來自另一件事
204 無內容 伺服器成功處理了請求,但沒有返回任何內容
205 重置內容 伺服器成功處理了請求,且沒有返回任何內容(與204有所區別)
206 部分內容 伺服器已成功處理了部分GET請求

3xx(重定向)

返回碼 功能 說明
300 多種選擇 針對請求,伺服器可執行多種操作。伺服器可根據請求者(user agent)選擇一項操作,或提供操作列表供請求者選擇
301 永久移動 請求的網頁已永久移動到新位置。 伺服器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
302 臨時移動 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。
303 檢視其他位置 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,伺服器返回此程式碼。
304 未修改 自從上次請求後,請求的網頁未修改過。 伺服器返回此響應時,不會返回網頁內容。
305 使用代理 請求者只能使用代理訪問請求的網頁。如果伺服器返回此響應,還表示請求者應使用代理。
307 臨時重定向 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。

4xx(請求錯誤)

返回碼 功能 說明
400 錯誤請求 伺服器不理解請求的語法
401 未授權 請求要求身份驗證。對於需要登陸的網頁,伺服器可能返回此響應
403 禁止 伺服器拒絕請求
404 未找到 伺服器找不到請求的網頁
405 方法禁用 禁用請求中指定的方法
406 無法使用請求的內容特性響應請求的網頁
407 需要代理授權 此狀態程式碼與401(未授權)類似,但指定請求者應當授權使用代理
408 請求超時 伺服器等候請求時發生超時
409 衝突 伺服器在完成請求時發生衝突。伺服器必須在響應中包含有關衝突的值
410 已刪除 如果請求的資源已永久刪除,伺服器就會返回此響應
411 需要有效長度 伺服器不接受不含有效內容長度標頭欄位的請求
412 未滿足前提條件 伺服器未滿足請求者在請求中設定的某個前提條件
413 請求實體過大 伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力
414 請求URI過程 請求的URI過長(通常位網址),伺服器無法處理
415 不支援的媒體型別 請求的格式不受請求頁面的支援
416 請求範圍不符合要求 如果頁面無法提供請求的範圍,伺服器會返回此狀態程式碼
417 未滿足期望值 伺服器未滿足“期望”請求標頭欄位的要求

5xx(伺服器錯誤)

返回碼 功能 說明
500 伺服器內部錯誤 伺服器遇到錯誤
501 尚未實施 伺服器不具備完成請求的功能。
502 錯誤閘道器 伺服器作為閘道器代理,從上游伺服器收到無效響應
503 服務不可用 伺服器目前無法使用
504 閘道器超時 伺服器作為閘道器或代理,但是沒有及時從上游伺服器收到請求
505 HTTP版本不受支援 伺服器不支援請求中所用的HTTP協議版本