2020-03-16

Http&Servlet入門

(一)HTTP協議的概述

一、什么是HTTP協議

HTTP協議:規(guī)定了瀏覽器和服務器端的數據交互的格式

1、HTTP的特性

? ? (1)基于請求和響應模型

? ? ? ? 必須要先有請求,后有響應

? ? ? ? 請求和響應必須成對出現

? ? (2)簡單快捷

? ? ? ? 因為發(fā)送請求的時候只需要發(fā)送請求方式和請求路徑即可

2、HTTP的版本

HTTP1.0:短鏈接

HTTP1.1:長鏈接

二、HTTP協議的抓包分析

1、分析HTTP協議

? ? (1)準備工作

? ? ? ? 創(chuàng)建頁面

http://localhost:8080/web01/demo1.html

? ? ? ? 安裝HTTPWatch(IE)或者使用谷歌、火狐的F12工具

(2)請求部分

*************GET請求(只有請求行、請求頭)*************

GET /web01/demo2.html?name=aaa&sex=man HTTP/1.1

Host: localhost:8080

Connection: keep-alive

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

Sec-Fetch-User: ?1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

Referer: http://localhost:8080/web01/demo1.html

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Cookie: Pycharm-8dbeb98c=1f31b81e-d44c-45f8-95c1-2b06c10aea65

*************POST請求(請求行、請求頭、請求體)*************

POST /web01/demo2.html HTTP/1.1

主機

Host: localhost:8080?

Connection: keep-alive

Content-Length: 18

Cache-Control: max-age=0

Origin: http://localhost:8080

Upgrade-Insecure-Requests: 1

內容的類型

Content-Type: application/x-www-form-urlencoded

客戶端瀏覽器的類型

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

Sec-Fetch-User: ?1

接收的數據格式

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

請求的來源

Referer: http://localhost:8080/web01/demo1.html

支持壓縮的格式

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Cookie: Pycharm-8dbeb98c=1f31b81e-d44c-45f8-95c1-2b06c10aea65

name=bbb&sex=woman

(3)響應部分(響應行、響應頭、響應體)

HTTP/1.1 200

Accept-Ranges: bytes

ETag: W/"145-1584323671836"

Last-Modified: Mon, 16 Mar 2020 01:54:31 GMT

Content-Type: text/html

Content-Length: 145

Date: Mon, 16 Mar 2020 01:59:05 GMT

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>Success!!!</h1>

</body>

</html>

三、HTTP協議之請求部分

1、請求行

?? (1)請求方式

? ? ?? 請求方式有很多種,常用兩種:GET和POST

? ? ?? GET和POST的區(qū)別?

? ? ? ? ?? GET:請求的參數會顯示到地址欄,通常是有大小的限制,沒有請求體

? ? ? ? ?? POST:請求的參數不會顯示到地址欄,POST沒有大小的限制,有請求體(請求參數),只有表單設置了method="post"才是post請求

?? (2)請求路徑

?? (3)協議版本

2、請求頭

?? (1)請求頭的格式一般都是一個key對應一個value的,但也有一個key對應多個value的情況

?? (2)記住一些請求頭:

? ? ?? Referer:代表網頁的來源(防盜鏈)

? ? ?? User-Agent:獲得客戶端瀏覽器的類型

3、請求體

?? 只有POST請求方式才有請求體,而且請求體是POST方式的請求參數

四、HTTP協議之響應部分

1、響應行

? ? 協議版本

? ? 狀態(tài)碼

? ? ? ? 200:代表響應成功

? ? ? ? 302:需要進行重定向操作

? ? ? ? 304:需要查找本地緩存

? ? ? ? 404:請求資源不存在

? ? ? ? 500:服務器內部錯誤

? ? 狀態(tài)碼描述

2、響應頭

? ? 通常一個key對應一個value,也有一個key對應多個value

? ? 記住響應頭:

? ? ? ? Location:重定向的路徑

? ? ? ? Refresh:定時刷新

? ? ? ? Content-Disposition:文件下載的時候使用(不用瀏覽器默認的方式打開,而是用下載的方式打開)

3、響應體

? ? 就是展示到瀏覽器上的頁面代碼

五、Servlet的概述與入門

1、什么是Servlet

? ? Servlet其實就是一個運行在Web服務器上的小的Java程序,用于處理從Web客戶端發(fā)送的請求,并且對請求作出響應

2、使用Servlet

編寫一個Java類實現Servlet的接口

配置Servlet

3、Servlet的入門

創(chuàng)建包和類

實現Servlet的接口

在web.xml中配置這個類

訪問Servlet

http://localhost:8080/web01/hello

4、Servlet的執(zhí)行流程

六、Servlet的實現關系

1、基本的實現關系

Servlet接口

? ? GenericServlet類:通用的Servlet,是一個無協議無關的Servlet

? ? ? ? HttpServlet類:Http專用的Servlet

2、關系實現的概述

SUN設計之初,是想以后的互聯網不單單只使用http協議,如果使用其它協議,都可以通過GenericServlet實現。HttpServlet是一個與協議相關的Servlet,是專門用來處理HTTP協議的請求的。通常編寫一個Servlet時,一般都會讓這個Servlet繼承HttpServlet,并重寫service方法

在service方法內部根據請求方式不同,會去執(zhí)行不同的doXxx的方法(例如GET請求執(zhí)行doGet方法、POST請求執(zhí)行doPost方法)

所以往往繼承了HttpServlet之后,不需要再重寫service方法了,只需重寫doGet和doPost方法即可。往往請求要處理的內容代碼都是一致的,所以需要讓doGet和doPost相互調用,可以簡化編程

七、使用Eclipse開發(fā)Servlet

1、新建Servlet

2、完成Servlet的配置

作者:李霜_9191

鏈接:http://www.itdecent.cn/p/850de850abfc

來源:簡書

著作權歸作者所有。商業(yè)轉載請聯系作者獲得授權,非商業(yè)轉載請注明出處。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • (一)HTTP協議的概述 一、什么是HTTP協議 HTTP協議:規(guī)定了瀏覽器和服務器端的數據交互的格式 1、HTT...
    李玉賢_8e75閱讀 136評論 0 0
  • Http&Servlet入門 (一)HTTP協議的概述 一、什么是HTTP協議 HTTP協議:規(guī)定了瀏覽器和服務器...
    你養(yǎng)豬嗎閱讀 123評論 0 0
  • 一、什么是HTTP協議 HTTP協議:規(guī)定了瀏覽器和服務器端的數據交互的格式 1、HTTP的特性 (1)基于請...
    劉哲_1d91閱讀 150評論 0 0
  • day08 Http&Servlet入門 (一)HTTP協議的概述...
    李霜_9191閱讀 206評論 0 0
  • Http&Servlet入門 (一)HTTP協議的概述 一、什么是HTTP協議 HTTP協議:規(guī)定了瀏覽器和服務器...
    唐夢帆閱讀 127評論 0 0

友情鏈接更多精彩內容