偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java面試HTTP篇之一:HTTP協(xié)議

開發(fā) 開發(fā)工具
HTTP協(xié)議(HyperText Transfer Protocol),即超文本傳輸協(xié)議是用于服務(wù)器傳輸?shù)娇蛻舳藶g覽器的傳輸協(xié)議。Web上,服務(wù)器和客戶端利用HTTP協(xié)議進(jìn)行通信會話。

[[226289]]

一、技術(shù)基石及概述

問:什么是HTTP?

答:HTTP是一個客戶端和服務(wù)器端請求和響應(yīng)的標(biāo)準(zhǔn)TCP。其實建立在TCP之上的。

當(dāng)我們打開百度網(wǎng)頁時,是這樣的:

https://www.baidu.com

多了個S,其實S表示TLS、SSL。在這里不做解釋,因此HTTP的技術(shù)基石如圖所示:

那HTTP協(xié)議呢?HTTP協(xié)議(HyperText Transfer Protocol),即超文本傳輸協(xié)議是用于服務(wù)器傳輸?shù)娇蛻舳藶g覽器的傳輸協(xié)議。Web上,服務(wù)器和客戶端利用HTTP協(xié)議進(jìn)行通信會話。有OOP思想的得出結(jié)論:其會話的結(jié)構(gòu)是一個簡單的請求/響應(yīng)序列,即瀏覽器發(fā)出請求和服務(wù)器做出響應(yīng)。

二、深入理解技術(shù)基石和工作流程

既然HTTP是基于傳輸層的TCP協(xié)議,而TCP協(xié)議是面向連接的端到端的協(xié)議。因此,使用HTTP協(xié)議傳輸前,首先建立TCP連接,就是因此在談的TCP鏈接過程的“三次握手”。如圖

在Web上,HTTP協(xié)議使用TCP協(xié)議而不是UDP協(xié)議的原因在于一個網(wǎng)頁必須傳送很多數(shù)據(jù),而且保證其完整性。TCP協(xié)議提供傳輸控制,按順序組織數(shù)據(jù)和錯誤糾正的一系列功能。

一次HTTP操作稱為一個事務(wù),其工作過程可分為四步:

1、客戶端與服務(wù)器需要建立連接。(比如某個超級鏈接,HTTP就開始了。)

 2、建立連接后,發(fā)送請求。

3、服務(wù)器接到請求后,響應(yīng)其響應(yīng)信息。

4、客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接。

建立連接,其實建立在TCP連接基礎(chǔ)之上。圖解核心工作過程(即省去連接過程)如下:

三、詳解工作過程的HTTP報文

HTTP報文由從客戶機(jī)到服務(wù)器的請求和從服務(wù)器到客戶機(jī)的響應(yīng)構(gòu)成。

一、請求報文格式如下:

  • 請求行
  • 通用信息頭
  • 請求頭
  • 實體頭
  • (空行)
  • 報文主體

如圖,請求我博客一篇文章時發(fā)送的報文內(nèi)容:

對于其中請求報文詳解:

1、請求行 方法字段 + URL + Http協(xié)議版本

2、通用信息頭 Cache-Control頭域:指定請求和響應(yīng)遵循的緩存機(jī)制。 keep-alive 是其連接持續(xù)有效【在下面百度的例子,會得到驗證】

 3、請求頭 Host頭域,腦補吧 Referer頭域:允許客戶端指定請求URL的資源地址。 User-Agent頭域:請求用戶信息?!究梢钥闯鲆恍┛蛻舳藶g覽器的內(nèi)核信息】

4、報文主體 如圖中的 “ p=278 ”一般來說,請求主體少不了請求參數(shù)。

二、應(yīng)答報文格式如下:

狀態(tài)行 通用信息頭 響應(yīng)頭 實體頭 (空行) 報文主體

如圖,就是這篇博客響應(yīng)的內(nèi)容:

對其中響應(yīng)報文詳解:

1、狀態(tài)行 HTTP協(xié)議版本 + 狀態(tài)碼 + 狀態(tài)代碼的文本描述 【比如這里,200 代表請求成功】

2、通用信息頭 keep-alive 是其連接持續(xù)有效【在下面百度的例子,會得到驗證】 Date頭域:時間描述

3、響應(yīng)頭 Server頭:處理請求的原始服務(wù)器的軟件信息。

4、實體頭 Content-Type頭:便是接收方實體的介質(zhì)類型。(這也表示了你的報文主體是什么。)

 (空行)

 5、報文主體 這里就是HTML響應(yīng)頁面了,在截圖tab頁中的response中可查看。

一次簡單的請求/響應(yīng)就完成了。

三、HTTP協(xié)議知識補充

請求報文相關(guān):

請求行-請求方法

  • GET            請求獲取Request-URI所標(biāo)識的資源
  • POST          在Request-URI所標(biāo)識的資源后附加新的數(shù)據(jù)
  • HEAD         請求獲取由Request-URI所標(biāo)識的資源的響應(yīng)消息報頭
  • PUT            請求服務(wù)器存儲一個資源,并用Request-URI作為其標(biāo)識
  • DELETE       請求服務(wù)器刪除Request-URI所標(biāo)識的資源
  • TRACE        請求服務(wù)器回送收到的請求信息,主要用于測試或診斷
  • CONNECT  保留將來使用
  • OPTIONS   請求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項和需求

響應(yīng)報文相關(guān):

響應(yīng)行-狀態(tài)碼

  • 1xx:指示信息--表示請求已接收,繼續(xù)處理
  • 2xx:成功--表示請求已被成功接收、理解、接受
  • 3xx:重定向--要完成請求必須進(jìn)行更進(jìn)一步的操作
  • 4xx:客戶端錯誤--請求有語法錯誤或請求無法實現(xiàn)
  • 5xx:服務(wù)器端錯誤--服務(wù)器未能實現(xiàn)合法的請求

常見的狀態(tài)碼

200 OK 請求成功(其后是對GET和POST請求的應(yīng)答文檔。)   304 Not Modified 未按預(yù)期修改文檔。客戶端有緩沖的文檔并發(fā)出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。   404 Not Found 服務(wù)器無法找到被請求的頁面。   500 Internal Server Error 請求未完成。服務(wù)器遇到不可預(yù)知的情況。

比如304

1、304狀態(tài)碼:有些圖片和js文件在本地客戶端緩存,再次請求后,緩存的文件可以使用。

2、以上所以HTTP請求,只靠一個TCP連接,這就是所謂的持久連接。

四、關(guān)于HTTP協(xié)議的Web應(yīng)用框架或者規(guī)范

JavaEE的人會知道Servlet規(guī)范。其中Web應(yīng)用容器都實現(xiàn)了HTTP協(xié)議中的對象,即請求和響應(yīng)對象。比如 javax.servlet.http.HttpServletResponse 對象中肯定有對狀態(tài)碼描述,如圖

至于如何使用它們,坐等系列文章吧。

五、總結(jié)

回顧全文,HTTP協(xié)議其實就是我們對話一樣,語言就是其中的協(xié)議。所以掌握HTTP協(xié)議明白以下幾點就好:

1、用什么通過HTTP協(xié)議通信

2、怎么通過HTTP協(xié)議通信

【本文為51CTO專欄作者“李強強”的原創(chuàng)稿件,轉(zhuǎn)載請通過51CTO聯(lián)系作者獲取授權(quán)】

戳這里,看該作者更多好文

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2021-04-14 14:16:58

HttpHttp協(xié)議網(wǎng)絡(luò)協(xié)議

2018-04-19 14:11:50

2022-07-11 07:10:48

HTTP協(xié)議類型

2014-10-22 09:36:41

TCPIP

2017-05-26 10:35:13

前端HTTP

2017-02-27 14:09:45

HTTPAPI網(wǎng)關(guān)Kong

2020-10-20 14:01:16

HTTP

2015-10-09 15:07:02

HTTP網(wǎng)絡(luò)協(xié)議

2020-06-17 21:39:11

HTTP協(xié)議服務(wù)器

2022-03-09 18:54:30

HTTP緩存協(xié)議cache

2019-09-23 08:35:52

2015-09-15 13:48:01

網(wǎng)絡(luò)協(xié)議HTTP Client

2019-07-23 09:30:17

HTTP 2.0HTTP協(xié)議傳輸

2018-03-12 11:22:48

HTTP面試狀態(tài)碼

2014-06-05 10:21:29

HTTP

2010-06-08 10:56:56

HTTP協(xié)議功能

2024-11-15 11:11:48

2021-05-07 09:17:21

HTTPTCP協(xié)議

2013-07-09 14:36:24

2014-11-13 10:57:03

http協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號