1. 程式人生 > >Servlet入門(一)HTTP協議

Servlet入門(一)HTTP協議

前言

       本章將和JQuery同步,開啟新的篇章,學習Servlet的相關知識!

方法

在講解之前,首先大家回顧一下MVC架構的內容以及層次關係:

  • 顯示層(JSP、HTML、CSS、JS等):網頁頁面,使用者直接訪問
  • 控制層(JAVA、SERVLET):用來處理顯示層傳入的請求
  • 業務層(JAVA):實現具體業務,供控制層呼叫
  • 資料訪問層(JAVA):直接與資料庫互動,供業務層呼叫

業務層和資料訪問層的相關知識已經在JAVA串燒(二)SMS編寫之後臺給大家做了細緻的講解了!那麼顯示層與控制層就需要用到Servlet的相關知識了。

1.http協議的基本理解

我們知道,我們的web專案都是B/S架構,即瀏覽器/伺服器模式。也就是說,使用者通過瀏覽器向伺服器傳送請求,伺服器將結果響應給使用者!那麼這就是web互動的基本流程。

常見的例子就是我們開啟瀏覽器,輸入www.baidu.com的時候,就是一次web互動的基本流程,其結果就是返回給使用者百度的首頁!

由於客戶端也就是瀏覽器的版本較多,伺服器也是參差不齊,那麼如何規範它們資料互動的格式呢?http協議應運而生!其用於規範web互動的基本規則!

百度上給出的http協議的定義如下:

超文字傳輸協議(HTTP,HyperText Transfer Protocol)是

網際網路上應用最為廣泛的一種網路協議。所有的WWW檔案都必須遵守這個標準。設計HTTP最初的目的是為了提供一種釋出和接收HTML頁面的方法。1960年美國人Ted Nelson構思了一種通過計算機處理文字資訊的方法,並稱之為超文字(hypertext),這成為了HTTP超文字傳輸協議標準架構的發展根基。Ted Nelson組織協調全球資訊網協會(World Wide Web Consortium)和網際網路工程工作小組(Internet Engineering Task Force )共同合作研究,最終釋出了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1。

2.http的互動流程

  • 客戶端與伺服器端建立連線
  • 客戶端傳送請求資料到伺服器端
  • 伺服器端接收到請求後進行處理,將處理結果相應給客戶端
  • 關閉客戶端和伺服器端的連線(HTTP1.1不會立刻關閉

3.http協議的請求格式

  • 請求頭:請求的方式(get、post等)、地址和HTTP協議版本
  • 請求行:訊息報頭,一般用來說明客戶端要使用的附加資訊
  • 空行:空行是必須的,位於請求行和請求資料之間
  • 請求資料:非必須

例項:CSDN登入

我們知道,CSDN的登入相當於完整的http互動流程,使用谷歌瀏覽器,開啟f12觀察請求格式(這一塊的內容我會單獨拉一個章節)

點選Network即網路選項卡,觀察點選登入按鈕的請求情況!

我們以其中的一個請求為例進行說明!

該處可以理解為請求頭,包含了url、請求方式、狀態碼等相關資訊

該處可以理解為請求行,包含了客戶端的附加資訊,用來告知伺服器端

 

該處即請求的資料

這裡面我們發現請求的方式有get和post等多種請求方式,最重要的就是探究post請求和get請求的區別

get請求:

  • 請求資料會以?的形式隔開拼接在請求頭中,不安全,沒有請求實體部分
  • http協議雖然沒有規定請求資料的大小,但是瀏覽器對url的長度是有限制的,所以get請求不能攜帶大量的資料

post請求:

  • 請求資料在請求實體中進行傳送,在url中看不到具體的請求資料,安全。適合資料量大的資料傳送。

4.http協議的響應格式

  • 響應行:HTTP協議版本、狀態碼、狀態訊息
  • 響應頭:訊息報頭,服務端要使用的附加資訊
  • 空行:空行是必須的,位於響應頭和響應實體之間
  • 響應實體:伺服器返回給瀏覽器的相關資訊

該處可以理解為響應行,包含了相關資訊!

該處為響應頭,包含了伺服器端的相關資訊

 

該處為響應實體,包含了伺服器端返回給客戶端的相關資訊。

 5.http協議的狀態碼

相信大家發現了,請求的時候有一個狀態碼是200,它意味著我們的請求是成功的!常見的狀態碼如下:

你不要不以為然,這些狀態碼將伴隨你的一生!!!