專案二 HTTP伺服器

2021-08-02 10:57:48 字數 1511 閱讀 4837

專案二:http伺服器
(在學習servlet技術和使用tomcat之前,熟悉其底層基本原理。)

http伺服器採用請求-響應模式,即乙個請求對應乙個響應。

本篇部落格將介紹該項目的基本思路,具體實現**,可訪問博主的github:

工欲善其事,必先利其器。需掌握:
1 掌握http協議

2 掌握io流

3 網路程式設計

4 多執行緒

5 反射

6 xml文件及解析(用到的是dom4j解析)

基本思路:
① 核心包:

server類:伺服器端,啟動和關閉伺服器;處理多執行緒邏輯編碼,定義的方法:start(),stop()。

request類:獲取請求資訊,分析並儲存請求引數或請求正文。

response類:封裝響應資訊,並輸出。

dispatcher類:多執行緒處理併發操作。

servletcontext類:根據不同的uri呼叫不同的servlet響應

② servlet包:

servlet類:抽象父類,封裝響應正文。

loginservlet類,registerservlet類:繼承servlet類。

可新增其它子類,並在xml文件中配置。

③ 工具包:

closeutils類:關閉操作(流,客戶端,伺服器端)
④ 解決中文亂碼問題: urldecoder類

http知識總結:
1 http請求

三部分組成:1)請求行:請求方式 uri(get方式有引數) 協議版本

2)請求頭:accept, host,connection,accept-encoding等等

3)請求正文:post方式才有。注意請求頭與請求正文之間有空行。

2 http響應

三部分組成:1)狀態行:協議版本 狀態碼 狀態描述

2)響應頭:content-type,content-length,location等等

3)響應正文:html語言等;注意響應頭與響應正文之間有空行。

3 常見的響應狀態碼:

200:響應成功

302:重定向資源,與location響應頭使用

303、304:獲取快取資源

404:檔案不存在

405:伺服器不支援客戶的請求方式

500:伺服器內部錯誤

4幾點注意

1)封裝request和response時,注意get/post方式的格式不同,注意空行問題。

2)響應頭中的content-length指的是響應正文的位元組長度而非字元長度。

HTTP伺服器專案詳解

http 伺服器專案 功能 用到的技術 開發環境 注意 關於http的一些基礎知識我就不談了,有興趣可以自行了解 接下來,我就分模組的介紹一下我的專案吧 模組化介紹 socketapi 模組 入口處理模組 處理請求模組 響應處理模組 cgi 模組 執行緒池模組 專案的問題 web伺服器專案原始碼 因...

HTTP伺服器專案過程

一 http 請求的解析 行的解析 頭的解析 二 http響應的組裝 行的組裝 頭的組裝 體的組裝 三 serversocket socket 建立連線 四 靜態的controller 1.根據url獲取真實的檔案路徑 2.根據檔名字尾,獲取content type 3.賦值檔案內容到respons...

專案 HTTP伺服器框架分析(一)

專案 http伺服器框架分析 二 專案 http伺服器框架 分析 三 0 專案描述 專案名稱 基於http伺服器的 專案 基於http伺服器框架的世界時間查詢器,採用多執行緒處理多客戶端連線請求,具體的還要分析請求是靜態請求還是動態請求,靜態請求直接返回對應url目錄中的html資源,動態請求使用了...