javaweb學習day5--《HTML篇》Springboot的模塊創建、HTML的相關知識點詳解

一、前言

從今天開始,就要啟動后端的學習了,Springboot會貫穿到底,一定要跟著小編嚴謹的去搭建Springboot環境,依賴添加的過程可能需要2分鐘左右,讀者們要耐心等待一下,搭建好Springboot之后才算正式的開始web后端的學習,http相關的內容僅供了解。

如果大家準備好的話那就一起開啟我們的后端之旅。

二、springboot模塊創建

第一步:右鍵單擊->新建->模塊

第二步:Springboot->按照順序進行填寫->下一步

注:jdk和java版本號保持一致

第三步:選擇版本->勾選Spring Web->創建

三、http協議

3.1 HTTP 的特點和概述

無連接性

  • HTTP 協議是無連接的,即每次請求都是獨立的,服務器處理完一個請求后會斷開連接,下一個請求需要重新建立連接。這種特性使得每個請求都是獨立的,不會保留狀態信息,適合分布式的、基于請求-響應模型的網絡環境。

無狀態性

  • HTTP 協議是無狀態的,即服務器不會保存每個客戶端的請求信息。每次請求都是獨立的,服務器處理完后即忘記。這要求客戶端每次請求都要提供必要的信息,如 Cookie、Session ID 等,以維持狀態。

簡單和靈活

  • HTTP 協議簡單直觀,使用起來靈活。請求和響應都是文本形式,易于閱讀和調試。它支持各種數據格式,如文本、圖片、音頻、視頻等,使其成為廣泛應用于互聯網上的基礎協議。

基于請求-響應模型

  • HTTP 是基于請求-響應模型的協議。客戶端發送請求給服務器,請求中包含方法(如 GET、POST)、資源路徑、協議版本等信息;服務器根據請求進行處理,并返回響應,響應中包含狀態碼、響應頭和響應體等信息。

狀態碼和頭部信息

  • HTTP 使用狀態碼來表示請求的處理結果,如200表示成功,404表示未找到資源,500表示服務器內部錯誤等。同時,HTTP 使用頭部信息(Header)來傳遞額外的請求和響應信息,如內容類型、長度、Cookie等。

安全性和擴展性

  • HTTP 協議本身不具備加密功能,通信內容可以被竊聽和篡改,為了提高安全性,可以在 HTTP 上加入 SSL/TLS 協議形成 HTTPS。HTTP 協議也支持通過擴展頭部和方法來實現功能的擴展,如緩存控制、身份認證等。

3.2 請求協議

HTTP 請求協議是客戶端向服務器發送請求時所遵循的規范和格式。它定義了請求的結構、方法、請求頭部、請求體等內容。

請求行(Request Line):

請求行包含了請求的方法、資源路徑和協議版本,格式如下:

METHOD PATH VERSION
  • METHOD:請求方法,例如 GET、POST、PUT、DELETE 等,用來指定請求的類型和操作方式。
  • PATH:請求的資源路徑,即服務器上請求資源的位置。
  • VERSION:HTTP 協議的版本號,通常是 HTTP/1.1 或 HTTP/2。

示例:

GET /index.html HTTP/1.1

請求頭部(Request Headers):

請求頭部包含了關于請求的各種信息,如客戶端信息、請求內容類型、認證信息等。每個頭部字段都以鍵值對形式出現,格式如下:

HeaderName: Value

常見的請求頭部包括:

  • Host:請求的主機名,指示服務器請求的目標。
  • User-Agent:發送請求的用戶代理(瀏覽器、爬蟲等)信息。
  • Content-Type:請求體的類型(僅在有請求體時使用)。
  • Authorization:認證信息,用于訪問受保護的資源。

示例:

Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

請求體(Request Body):

某些請求(如 POST、PUT)可能會包含數據或內容,這些數據在請求體中傳輸。請求體的格式和內容根據請求的方法和需要而有所不同,通常是文本、JSON 數據或二進制數據。

示例:

POST /submit-form HTTP/1.1
Host: www.example.com
Content-Type: application/json{"username": "user123","password": "pass123"
}

HTTP 請求的基本流程:

  1. 建立連接:客戶端與服務器建立 TCP 連接。
  2. 發送請求:客戶端向服務器發送格式正確的 HTTP 請求。
  3. 服務器處理:服務器接收、解析并處理請求。
  4. 發送響應:服務器生成并發送 HTTP 響應給客戶端。

3.3 響應協議

HTTP 響應協議是服務器響應客戶端請求時遵循的規范和格式,它定義了響應的結構、狀態碼、響應頭部、響應體等內容。

狀態行(Status Line):

狀態行包含了響應的協議版本、狀態碼和狀態消息,格式如下:

VERSION STATUS_CODE REASON_PHRASE

  • VERSION:HTTP 協議的版本號,通常是 HTTP/1.1 或 HTTP/2。
  • STATUS_CODE:三位數字的狀態碼,表示服務器對請求的處理結果。
  • REASON_PHRASE:對狀態碼的簡短描述,方便人類閱讀,但實際上并不影響機器處理。

HTTP/1.1 200 OK

響應頭部(Response Headers):

響應頭部包含了關于響應的各種信息,如服務器類型、響應內容類型、日期等。每個頭部字段同樣以鍵值對形式出現,格式如下:

HeaderName: Value

常見的響應頭部包括:

  • Content-Type:響應體的類型。
  • Content-Length:響應體的長度。
  • Date:響應的日期和時間。
  • Server:服務器的軟件信息。
  • Set-Cookie:設置客戶端的 Cookie 信息。

示例:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Date: Sat, 10 Jul 2024 12:00:00 GMT
Server: Apache/2.4.38 (Ubuntu)

響應體(Response Body):

響應體包含了服務器返回給客戶端的實際內容,格式和內容根據響應的內容類型而有所不同,可以是文本、HTML、JSON 數據或二進制數據等。

示例:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234<!DOCTYPE html>
<html>
<head><title>Welcome to Example.com</title>
</head>
<body><h1>Hello, World!</h1><p>This is a sample HTML response.</p>
</body>
</html>

HTTP 響應的基本流程:

  1. 接收請求:服務器接收客戶端的 HTTP 請求。
  2. 處理請求:服務器處理請求,生成需要的數據和響應。
  3. 發送響應:服務器將響應的狀態行、頭部和體發送給客戶端。

3.4 協議解析

?1. 請求方法(Request Methods)

HTTP 定義了幾種請求方法,常見的包括:

  • GET:請求指定的資源。
  • POST:向指定資源提交數據進行處理請求(如提交表單或上傳文件)。
  • PUT:上傳指定的資源。
  • DELETE:刪除指定的資源。
  • HEAD:獲取報頭信息,類似于 GET 請求,但服務器只返回報頭,不返回實體的主體部分。
  • OPTIONS:列出可對資源實行的請求方法,用來查詢服務器支持的方法。

2. 狀態碼(Status Codes)

HTTP 使用狀態碼來表示服務器對請求的處理結果,常見的狀態碼包括:

  • 2xx:成功。例如,200 表示請求成功。
  • 3xx:重定向。例如,301 表示永久重定向,302 表示臨時重定向。
  • 4xx:客戶端錯誤。例如,404 表示未找到請求的資源。
  • 5xx:服務器錯誤。例如,500 表示服務器內部錯誤。

3. 報文結構

HTTP 報文分為請求報文和響應報文:

  • 請求報文包括請求行、請求頭部和請求體。
  • 響應報文包括狀態行、響應頭部和響應體。

4. 連接管理

HTTP/1.1 引入了持久連接(persistent connection)的概念,使得在同一個 TCP 連接上可以發送和接收多個 HTTP 請求和響應,減少了連接建立和關閉的開銷,提高了性能。

URL(Uniform Resource Locator)

URL 是統一資源定位符,用來唯一標識互聯網上的資源。HTTP 使用 URL 來指定請求的資源地址,包括協議類型(http:// 或 https://)、主機名、路徑、查詢參數等信息。

5. 安全性

HTTP 并不具備加密功能,因此傳輸的數據在傳輸過程中可能會被竊聽或篡改。為了解決這個問題,HTTPS(HTTP Secure)應運而生,通過 SSL/TLS 加密協議來保證通信安全。

6. 版本演變

  • HTTP/0.9:最早的版本,只支持 GET 方法,沒有頭部信息,響應只包含 HTML 文檔。
  • HTTP/1.0:引入了多種請求方法、狀態碼、頭部字段等。
  • HTTP/1.1:支持持久連接、流水線處理、Host 頭部字段等,廣泛應用于現代 Web。
  • HTTP/2:引入了新的二進制格式,多路復用、頭部壓縮等,提升了性能。
  • HTTP/3:基于 UDP 實現,提供更快的傳輸速度和更好的性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43591.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43591.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43591.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算力革命:彈性租賃,解鎖無限可能

華為創始人任正非曾在一場程序設計競賽中說道&#xff0c;我們即將進入第四次工業革命&#xff0c;基礎就是大算力。事實上&#xff0c;隨著5G、人工智能等信息技術的迅猛發展&#xff0c;算力需求持續增長&#xff0c;但高昂的成本和快速的技術迭代讓許多中小企業和個人開發者…

Covalent Network(CXT)通過社區投票將代幣遷移并更名為 CXT,以推動人工智能更深層次的創新

專注于人工智能和 Web3 的模塊化數據基礎設施 Covalent Network&#xff08;CXT&#xff09;宣布&#xff0c;其治理提案已通過社區投票并順利實施&#xff0c;即將原生代幣 CQT 遷移為新的 CXT 代幣&#xff0c;并部署至新的合約。這一關鍵性轉變標志著 Covalent Network&…

git刪除提交記錄,并使用idea將代碼重新提交到gitee倉庫

git 新建分支將之前的記錄刪除重新提交 轉載鏈接 https://blog.csdn.net/qq_37142541/article/details/139860956

03-NoSQL之Redis配置與優化

一、redis與memcache總體對比 1.性能 Redis&#xff1a;只使用單核&#xff0c;平均每一個核上Redis在存儲小數據時比Memcached性能更高。 Memcached&#xff1a;可以使用多核&#xff0c;而在100k以上的數據中&#xff0c;Memcached性能要高于Redis。 2.內存使用效率 MemC…

springboot文達辦公物資管理系統-計算機畢業設計源碼51191

摘要 本文介紹了一種名為"文達辦公物資管理系統"的基于JAVA語言、基于Springboot框架和MYSQL數據庫開發的管理系統。該系統主要分為管理員和員工用戶兩個角色&#xff0c;以滿足不同用戶的需求。 對于管理員用戶&#xff0c;系統提供了儀器設備管理、設備借用管理、設…

【大數據技術】換新電腦了,如何快速遷移MySQL到新電腦上(含程序+數據),這樣既快速又高效,省去了“各種安裝+各種配置+各種遷移數據”帶來的麻煩和時間

【大數據技術】換新電腦了&#xff0c;如何快速遷移MySQL到新電腦上(含程序數據 背景步驟總結 背景 很久沒有寫博文了哦&#xff0c;最近我換了新的筆記本,于是需要在新筆記本電腦上搭建MySQL環境&#xff0c;因為我原電腦上是安裝的MySQL解壓版&#xff0c;故我想偷偷懶&…

可理解性評估:使用Google Gemini優化語音識別的意義保留

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

nftables(5)表達式(3)PAYLOAD EXPRESSIONS

PAYLOAD EXPRESSIONS Payload expressions在nftables中扮演著重要的角色&#xff0c;因為它們允許用戶定義復雜的規則&#xff0c;這些規則可以基于數據包的內容&#xff08;即有效載荷&#xff09;來過濾、修改或允許數據包通過。這些表達式可以執行諸如數據拷貝、比較、位操…

實驗1 —— 安全策略的練習

實驗拓撲圖 實驗要求 1.DMZ區內的服務器&#xff0c;辦公區僅能在辦公時間內&#xff08;9&#xff1a;00-18&#xff1a;00&#xff09;可以訪問&#xff0c;生產區的設備全天可以訪問&#xff1b; 2.生產區不允許訪問互聯網&#xff0c;辦公區和游客區允許訪問互聯網 3.辦公區…

RabbitMQ保證消息被成功發送和消費

一 : 在使用 RabbitMQ 作為消息隊列時&#xff0c;保證消息被成功發送和消費是一個非常重要的問題。以下是一些關鍵點和最佳實踐&#xff0c;以確保消息的可靠傳輸和處理。* 配置方式: 保證消息被成功發送 確認模式&#xff08;Confirm Mode&#xff09;&#xff1a;生產者可以…

在SpringBoot使用AOP防止接口重復提交

前言 防止接口重復提交有跟多種方法&#xff0c;可以在前端做處理。同樣在后端也能處理&#xff0c;而且后端的處理也有很多中方法。最先能想到的就是加鎖&#xff0c;也可以直接在該接口的實現過程中進行處理&#xff08;可以參考防止數據重復提交的6種方法(超簡單)&#xff…

動手學Avalonia:基于硅基流動構建一個文生圖應用(一)

文生圖 文生圖&#xff0c;全稱“文字生成圖像”&#xff08;Text-to-Image&#xff09;&#xff0c;是一種AI技術&#xff0c;能夠根據給定的文本描述生成相應的圖像。這種技術利用深度學習模型&#xff0c;如生成對抗網絡&#xff08;GANs&#xff09;或變換器&#xff08;T…

【Mac】Charles for Mac(HTTP協議抓包工具)及同類型軟件介紹

軟件介紹 Charles for Mac 是一款功能強大的網絡調試工具&#xff0c;主要用于HTTP代理/HTTP監視器。以下是它的一些主要特點和功能&#xff1a; 1.HTTP代理&#xff1a;Charles 可以作為HTTP代理服務器&#xff0c;允許你查看客戶端和服務器之間的所有HTTP和SSL/TLS通信。 …

金航標kinghelm宋仕強在介紹自己公司時說

金航標kinghelm宋仕強在介紹自己公司時說&#xff0c;金航標成立于2007年&#xff0c;成立地點在華強北雷圳大廈803室&#xff0c;后搬到華強北廣業大廈24樓CD室&#xff0c;后搬遷到龍華展滔科技大廈C座C809和C817室&#xff0c;現在的辦公地址為龍崗區坂田街道百瑞達大廈&…

WSL安裝USB驅動

wsl用不了USB盤&#xff0c;需要安裝驅動 1、安裝windows驅動 https://github.com/dorssel/usbipd-win/releases 下載msi&#xff0c;并且安裝 2、linux里面安裝 sudo apt install linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usb…

PageDTO<T>,PageQuery,BeanUtils,CollUtils的封裝

一、PageDTO<T> import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.annotation.JsonIgnore; import com.tianji.common.utils.BeanUtils; import com.tianji.common.utils.CollUtils; import com.tianji.common.utils.…

C#中的MD5摘要算法與哈希算法

文章目錄 一、哈希算法基礎二、MD5 算法原理三、MD5摘要算法四、哈希算法五、C#實現示例MD5算法示例哈希算法示例字符串MD5值對比 六、總結 一、哈希算法基礎 哈希算法是一種單向密碼體制&#xff0c;它將任意長度的數據轉換成固定長度的字符串。這種轉換是不可逆的&#xff0…

IDEA中配置代理,解決Codearts Snap登陸不了的問題

問題描述&#xff1a;在mac電腦中的idea中安裝了華為的codearts snap插件&#xff0c;一直登錄不了&#xff0c;賬號是沒問題的&#xff0c;后來我懷疑是我的代理有問題&#xff0c;找到IDEA中的代理設置先是有這個問題“You have JVM property "https.proxyHost" se…

千呼新零售2.0分銷商城視頻介紹

千呼新零售2.0系統是零售行業連鎖店一體化收銀系統&#xff0c;包括線下收銀線上商城連鎖店管理ERP管理商品管理供應商管理會員營銷等功能為一體&#xff0c;線上線下數據全部打通。 適用于商超、便利店、水果、生鮮、母嬰、服裝、零食、百貨、寵物等連鎖店使用。 詳細介紹請…

C語言 將兩個字符串連接起來,不用strcat函數

編一個程序,將兩個字符串連接起來,不要用strcat函數。 #include <stdio.h>void my_strcat(char *s1, const char *s2) {while (*s1) {s1;}while (*s2) {*s1 *s2;s1;s2;}*s1 \0; }int main() {char s1[100] "Hello, ";char s2[] "World!";my_str…