日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

HTTP与HttpServlet

發布時間:2024/4/15 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP与HttpServlet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1)、HTTP協議

Web瀏覽器和服務器通過HTTP協議在Internet上發送和接收消息。HTTP是一種基于請求/響應模式的協議。客戶端發送一個請求,服務器端返回對該請求響應。

HTTP使用可靠的TCP連接,默認端口是80

(2)、HTTP請求

HTTP請求由3個部分構成,分別是:

l? 請求方法URI協議/版本

l? 請求頭(Request Header)

l? 請求正文

下面是一個HTTP請求的例子:

GET/sample.jspHTTP/1.1

?

Accept:image/gif.image/jpeg,*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)

Accept-Encoding:gzip,deflate

?

username=ssss&password=1234

?

1>、請求方法URI協議/版本

以上代碼中“GET”代表請求方法,“/sample.jsp”表示URI,“HTTP/1.1”代表協議和協議的版本。

根據HTTP標準,HTTP請求可以使用多種請求方法。例如:HTTP1.1支持7種請求方法:GETPOSTHEADOPTIONSPUTDELETETARCE。在Internet應用中,最常用的方法是GETPOST

URL完整地指定了要訪問的網絡資源,通常只要給出相對于服務器的根目錄的相對目錄即可,因此總是以“/”開頭,最后,協議版本聲明了通信過程中使用HTTP的版本。

2>、請求頭(Request Header)

請求頭包含許多有關的客戶端環境和請求正文的有用信息。例如,請求頭可以聲明瀏覽器所用的語言,請求正文的長度等。

Accept:image/gif.image/jpeg.*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)

Accept-Encoding:gzip,deflate.

3>、請求正文

請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求正文。請求正文中可以包含客戶提交的查詢字符串信息:

username=rrrro&password=1234

在以上的例子的HTTP請求中,請求的正文只有一行內容。當然,在實際應用中,HTTP請求正文可以包含更多的內容。

HTTP響應

?

HTTP請求相似,HTTP響應也由3個部分構成,分別是:

l? 協議狀態版本代碼描述

l? 響應頭(Response Header)

l? 響應正文

下面是一個HTTP響應的例子:

HTTP/1.1 200 OK

?

Server:Apache Tomcat/5.0.12

Date:Mon,6Oct2003 13:23:42 GMT

Content-Length:112

?

<html>
<head>

<title>HTTP響應示例<title>

</head>

<body>

Hello HTTP!

</body>

</html>

1>、協議 狀態代碼描述

HTTP響應的第一行類似于HTTP請求的第一行,它表示通信所用的協議是HTTP1.1服務器已經成功的處理了客戶端發出的請求(200表示成功):

HTTP/1.1 200 OK

2>、響應頭(Response Header)

響應頭也和請求頭一樣包含許多有用的信息,例如服務器類型、日期時間、內容類型和長度等:

  Server:Apache Tomcat/5.0.12

Date:Mon,6Oct2003 13:13:33 GMT

Content-Type:text/html

Last-Moified:Mon,6 Oct 2003 13:23:42 GMT

Content-Length:112

3>、響應正文

響應正文就是服務器返回的HTML頁面:

  <html>
<head>

<title>HTTP響應示例<title>

</head>

<body>

Hello HTTP!

</body>

</html>

響應頭和正文之間也必須用空行分隔。  

(3)HTTPServlet的功能

在了解具體的HTTP協議規范后,可以更好地理解HttpServlet的作用,它能夠根據客戶發出HTTP請求,生成相應的HTTP響應結果。HttpServlet首先必須讀取HTTP請求的內容。Servlet容器負責創建HttpRequest對象,并把HTTP請求信息封裝到HttpRequest對象中,這大大簡化了HttpServlet解析請求數據的工作量。如果沒有HttpRequest,HttpServlet只能直接處理Web客戶發出的原始的字符數據,有了HttpRequest后,只要調用HttpServletRequest的相關方法,就可以方便地讀取HTTP請求中任何一部分信息,HttpServletRequest中讀取HTTP請求信息的常用方法參見下表

?

HttpServletRequest對象的常用方法

方法

描述

getCookie()

返回HTTP請求的Cookies

getHeader(String name)

返回參數指定的HTTP請求的Header數據

getRequestURI()

返回HTTP請求的URI

getQueryString()

返回HTTP請求數據中的查詢字符串

getMethod()

返回HTTP請求方法

Servlet容器還向HttpServlet提供了HttpServletResponse對象,HttpServlet可以通過它來生成HTTP響應的每一部分內容,HttpServletResponse提供了生成響應數據Header的方法

?

HttpServletResponse對象的常用方法

方法

描述

addCookie(Cookie cookie)

HTTP響應中加入Cookie

setHeader(String name,String value)

設置HTTP響應的Header,如果參數name對應的Header已經存在,則覆蓋原來的Header數據

addHeader(String name,String value)

HTTP響應中加入Header

?

(4)Servlet容器響應Web客戶請求流程的UML時序圖

在時序圖中,從對象A到對象B的箭頭,表示AB發送一條消息,B接收到消息后,將執行相關的操作,因此也可理解為A調用B的方法。例如在UML時序圖步驟5,表示Servlet容器調用HttpServletservice()方法,對于步驟2,箭頭的起點和終點都指向Servlet容器,表示Servlet容器調用自身的方法來解析HTTP請求信息。

1.????? Web客戶向Servlet容器發出HTTP請求;

2.????? Servlet容器解析WebHTTP請求;

3.????? Servlet容器創建一個HttpRequest對象,在這個對象中封裝了HTTP請求信息;

4.????? Servlet容器創建一個HttpResponse對象;

5.????? Servlet容器調用HttpServletservice方法,把HttpRequestHttpResponse對象為Service方法的參數傳給HttpServlet對象;

6.????? HttpServlet調用HttpRequest的有關方法,獲取HTTP請求信息;

7.????? HttpServlet調用HttpResponse的有關方法,生成響應數據;

8.?????? Servlet容器把HttpServlet的響應結果傳給Web客戶

--------------------

++轉載

轉載于:https://www.cnblogs.com/SamFlynn/p/4461463.html

總結

以上是生活随笔為你收集整理的HTTP与HttpServlet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。