成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java面試HTTP篇之一:HTTP協議

開發 開發工具
HTTP協議(HyperText Transfer Protocol),即超文本傳輸協議是用于服務器傳輸到客戶端瀏覽器的傳輸協議。Web上,服務器和客戶端利用HTTP協議進行通信會話。

[[226289]]

一、技術基石及概述

問:什么是HTTP?

答:HTTP是一個客戶端和服務器端請求和響應的標準TCP。其實建立在TCP之上的。

當我們打開百度網頁時,是這樣的:

https://www.baidu.com

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

那HTTP協議呢?HTTP協議(HyperText Transfer Protocol),即超文本傳輸協議是用于服務器傳輸到客戶端瀏覽器的傳輸協議。Web上,服務器和客戶端利用HTTP協議進行通信會話。有OOP思想的得出結論:其會話的結構是一個簡單的請求/響應序列,即瀏覽器發出請求和服務器做出響應。

二、深入理解技術基石和工作流程

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

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

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

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

 2、建立連接后,發送請求。

3、服務器接到請求后,響應其響應信息。

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

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

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

HTTP報文由從客戶機到服務器的請求和從服務器到客戶機的響應構成。

一、請求報文格式如下:

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

如圖,請求我博客一篇文章時發送的報文內容:

對于其中請求報文詳解:

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

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

 3、請求頭 Host頭域,腦補吧 Referer頭域:允許客戶端指定請求URL的資源地址。 User-Agent頭域:請求用戶信息。【可以看出一些客戶端瀏覽器的內核信息】

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

二、應答報文格式如下:

狀態行 通用信息頭 響應頭 實體頭 (空行) 報文主體

如圖,就是這篇博客響應的內容:

對其中響應報文詳解:

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

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

3、響應頭 Server頭:處理請求的原始服務器的軟件信息。

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

 (空行)

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

一次簡單的請求/響應就完成了。

三、HTTP協議知識補充

請求報文相關:

請求行-請求方法

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

響應報文相關:

響應行-狀態碼

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

常見的狀態碼

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

比如304

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

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

四、關于HTTP協議的Web應用框架或者規范

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

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

五、總結

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

1、用什么通過HTTP協議通信

2、怎么通過HTTP協議通信

【本文為51CTO專欄作者“李強強”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

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

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-04-14 14:16:58

HttpHttp協議網絡協議

2018-04-19 14:11:50

2022-07-11 07:10:48

HTTP協議類型

2014-10-22 09:36:41

TCPIP

2017-05-26 10:35:13

前端HTTP

2017-02-27 14:09:45

HTTPAPI網關Kong

2020-10-20 14:01:16

HTTP

2015-10-09 15:07:02

HTTP網絡協議

2020-06-17 21:39:11

HTTP協議服務器

2022-03-09 18:54:30

HTTP緩存協議cache

2019-09-23 08:35:52

2015-09-15 13:48:01

網絡協議HTTP Client

2019-07-23 09:30:17

HTTP 2.0HTTP協議傳輸

2018-03-12 11:22:48

HTTP面試狀態碼

2014-06-05 10:21:29

HTTP

2010-06-08 10:56:56

HTTP協議功能

2024-11-15 11:11:48

2021-05-07 09:17:21

HTTPTCP協議

2013-07-09 14:36:24

2014-11-13 10:57:03

http協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩淫片 | 欧美亚洲网站 | 国产精品久久久久久久久久免费看 | 久久99视频这里只有精品 | 亚洲欧洲成人在线 | 国产成人精品免费视频 | 免费成人高清在线视频 | 亚洲欧美日韩精品久久亚洲区 | 欧美啪啪| 台湾a级理论片在线观看 | 日本一区二区三区在线观看 | 精品久久久久久亚洲精品 | 极品国产视频 | 亚洲精品在线免费观看视频 | 一区二区三区欧美在线 | 亚洲视频欧美视频 | 综合在线视频 | 久久大陆 | 在线免费中文字幕 | 黄色免费网址大全 | 国产高清视频 | 亚洲bt 欧美bt 日本bt | 天天av综合 | 亚洲欧美视频一区 | 中文字幕免费在线 | 日本激情视频中文字幕 | 免费观看一级特黄欧美大片 | 精久久 | 中文字幕亚洲一区二区三区 | 欧美一区在线视频 | 国产成人精品综合 | 亚洲午夜av| 久久久久黄 | 在线视频一区二区 | 超碰人人爱 | 亚洲三级在线观看 | 日日碰碰 | 丁香婷婷久久久综合精品国产 | 久热国产精品视频 | 日韩免费一级 | 天堂中文在线观看 |