計算機網絡之HTTP報文

計算機網絡之HTTP報文

HTTP請求報文——來自用戶一封簡訊

請求報文是由客戶向服務器發送的,請求的服務器服務的。既然是請求的短信,那就一定包含一些基本的信息
在這裏插入圖片描述

GET /somedir/page.html HTTP/1.1     // 請求行
Host:www.someschool.edu    //首部行
Connection:close	//首部行
User-agent:Mozilla/5.0		//首部行
Accept-language:fr		//首部行

(實體體)
  • 第一行,請求行,最基本的告訴別人,你的請求,請求的內容,和你遵守的HTTP協議版本:

    • 對應就是:方法字段 URL字段 HTTP版本字段

    • 方法字段:告訴服務器你要幹什麼

      • GET:向服務器請求HTML對象
      • POST:向服務器提交關鍵字。
        • 你搜索網頁的時候,會向百度提交關鍵字;你寫郵件的時候會有附件,一般是爲空,除非你有什麼附加說明
      • HEAD:對網絡應用進行調試和跟蹤
      • PUT:從用戶端將對象上傳到指定的Web服務器上的指定路徑,網盤大致是這個道理
      • DELETE:允許用戶或者應用程序將Web服務器上的對象刪除,微信裏的收藏刪除
    • URL字段:請求對象是什麼

      • 用來表示請求對象的標記,
    • HTTP版本字段:告訴計算機你遵守的HTTP協議是什麼?

  • 第二行:首部行,你的對象具體存放在那臺主機上

    • Host:www.someschool.edu
    • 收件人的地址
  • 第三行,因爲TCP有兩種,一種是持續性連接,一種是非持續性連接,在這裏告訴服務器你是需要哪一種

    • close,發送完對象直接關閉TCP,採用非持續性連接
    • open,發送完對象不要關閉TCP,採用持續性鏈接
  • 後兩行:User-agent和Accept-language

    • 是誰幫我代理的,指明用戶代理服務器類型
    • 不同的服務器需要的HTML版本是不同的,服務器會根據你的代理版本發給你有有效的形式
    • Accpet-language:字如其義,你接受的語言類型
HTTP迴應報文——來自服務器的一個快遞

先看看一份快遞單

在這裏插入圖片描述

再來對比一下HTTP相應報文

HTTP/1.1   200   OK
Connection:close
Date:Tue,18 Aug 2015  15:44:04    GMT
Server:Apache/2.2.3(CentOS)
Last-modified: Tue ,18 Aug 2015  15:11:03  GMT
Content-Length:6821
Content-Type:text/html
(實體體,具體的數據)
首先來看看前三行,關於TCP連接的
HTTP/1.1  200  OK
Connection:close
Date:Tue,18 Aug 2015  15:44:04    GMT
  • 我們對比快遞單內容,由於服務器和用戶之間的是用已經建立好的TCP連接,相當於一個通道,所以不需要再寫什麼收件人,因爲這個通道的後面只有一個收件人,將快遞扔進去就行了,所以就將快遞單的有半部分用戶信息屏蔽了
    • 當然,既然是通道,那通道建立是否成功,都得給人家回個信,同時還得說明通道的使用方式
    • 對應“200 OK”狀態碼和“Connection:close”連接使用方式
  • 快遞公司是有協議的,服務器的響應報文也是有遵從協議的,如HTTP/1.1
  • 最後註明一下發貨日期,對應“Date:Tue,18 Aug 2015 15:44:04 GMT“
然後再來看看後半部分
Server:Apache/2.2.3(CentOS)
Last-modified: Tue ,18 Aug 2015  15:11:03  GMT    //對象生產和修改日期
Content-Length:6821		//對象的大小
Content-Type:text/html 		//對象的類型
  • 對比快遞單的發件人信息,同樣的迴應報文也得說明一下發件人的信息,是誰發送的信息,對應就是”Server:Apache/2.2.3(CentOS)“
    • 補充一下,常用的服務器:IIS,Kangle, WebLogic,Apache,Tomcat,Nginx
  • 在對比一下快遞單,上面會寫貨物的類型,大小,迴應報文也同樣會有相關內容,註明發送內容的大小和類型,同時還會註明這個對象生產創建日期,對應就是在這裏插入圖片描述
  • 然後就是快遞的真正內容
最後了,再說明一下常見的一些狀態碼
  • 200 OK:請求成功,信息再返回的相應報文中
  • 301 Moved Permanently”請求對象被永久的轉移了,但是相應的你的瀏覽器會自動的獲取對應的連接,相當於跳轉
  • 400 Bad Request:通用的差錯代碼,服務器理解不了你的請求
  • 404 Not Found:請求的文檔不在服務器上
  • 505 HTTP Version Not Supported:服務器不支持對應的報文使用的HTTP協議,協議太老,我不支持
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章