JavaWeb學習(一)🧐
JavaWeb
1、基本概念
1.1、前言
web開發:
- web 網頁的意思 www.baidu.com
- 靜態web
- html、css
- 提供給所有人看到的資料始終不會發生變化
- 動態web
- 頁面會動態變化,每個人都不一樣
- 技術棧:Servlet/JSP、ASP、PHP
- 靜態web
在 Java 中,動態 web 資源開發的技術統稱為 JavaWeb
1.2、web 應用程式
web 應用程式:可以提供瀏覽器訪問的程式
- a.html、b.html ... 多個 web 資源可以被外界訪問,對外界提供服務
- 這個統一的 web 資源會被放在同一個資料夾下,web 應用程式 ——> Tomcat:伺服器
- 一個 web 應用有多部分組成
- html、css
- jsp、servlet
- java 程式
- jar 包
- 配置檔案
web 應用程式編寫完畢後,若想提供給外界訪問:需要一個伺服器統一管理
1.3、靜態 web
- *.html、 *.htm,這些都是網頁的字尾,如果伺服器一直存在這些東西,我們就可以直接讀取
- 靜態 web 存在的缺點
- Web 頁面無法動態更新
- 輪播圖、點選特效、偽動態
- JavaScript
- VBScript
- 無法與資料庫互動(資料無法持久化,使用者無法互動)
- Web 頁面無法動態更新
1.4、動態 web
頁面動態變化,因人而異
缺點:
- 假如伺服器動態web資源出現錯誤,我們就要重新編寫我們的後臺程式
優點:
- 可以和資料庫互動(資料持久化)
2、web 伺服器
2.1、技術詳情
-
ASP
- 微軟
- 在HTML中嵌套了VB指令碼
- 在ASP開發當中,基本一個頁面都有幾千行程式碼,維護成本很高
- 就是html程式碼裡面巢狀 java 程式碼 <% %>
-
PHP
- 開發速度快,功能強大,跨平臺,程式碼簡單
- 無法承載大訪問量的情況
-
JSP/Servlet
- B/S:瀏覽器伺服器
- sun公司主推的B/S架構
- 基於java語言
- 語法像ASP
2.2、伺服器
伺服器是一種被動的操作,用於處理使用者的一些請求和給使用者一些響應資訊
-
IIS
- 微軟
- window自帶
-
Tomcat
-
Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 專案中的一個核心專案,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支援,最新的Servlet 和JSP 規範總是能在Tomcat 中得到體現,Tomcat 5支援最新的Servlet 2.4 和JSP 2.0 規範。因為Tomcat 技術先進、效能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。
Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。對於一個Java初學web的人來說,它是最佳的選擇
Tomcat 實際上執行JSP 頁面和Servlet。Tomcat最新版本為10.0.5。
3、Tomcat
3.1、安裝tomcat
3.2、tomcat啟動和配置
- tomcat 的 bin 包下的檔案,開啟即可
- http://localhost:8080/ 出現如下介面就說明開啟了
-
配置:config 檔案
server.xml:伺服器核心配置檔案,可以修改埠號(預設8080),可以修改主機的名稱(預設 localhost —> 127.0.0.1,但是這個要去改系統)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
-
常見埠號
tomcat:8080
mysql:3306
http:80
https:443
3.3、高難度面試題
請你談談網站是如何進行訪問的?
- 輸入一個域名
- 檢查本機下的 C:\Windows\System32\drivers\etc\hosts 配置檔案有沒有這個域名的對映
- 有直接去對應的ip地址
- 沒有就去DNS找
- 再找不到就返回找不到
3.4、釋出一個 web 網站
不會就先模仿
4、Http
4.1、什麼是http
超文字傳輸協議(HTTP)是一個簡單的請求-響應協議,它通常執行在TCP之上。
- 超文字:圖片、音樂、視訊、定位、地圖....
- 埠:80
https:安全的
- 埠:443
4.2、兩個時代
- http1.0
- http/1.0:客戶端可以與web伺服器連線後,只能獲得一個web資源
- http2.0
- http/1.1:可以獲得多個web資源
4.3、http請求
- 客戶端 ——> 伺服器
百度:
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK 狀態碼
Remote(遠端) Address: 14.215.177.39:443
Referrer Policy: no-referrer-when-downgrade
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9 語言:zh-CN
Cache-Control: max-age=0
Connection: keep-alive
4.3.1、請求行
- 請求行的請求方法:GET
- 請求方式:GET/POST(一個更高效、一個更安全)
- get:請求能夠攜帶的引數比較少,大小有限制,會在瀏覽器的url位址列顯示資料內容,不安全,但是高效
- post:請求攜帶的引數沒限制,大小沒限制,瀏覽器不會顯示,安全,但不高效
4.3.2、訊息頭
Accept:告訴瀏覽器,所支援的資料型別
Accept-Encoding:支援哪種編碼格式:utf-8...
Accept-Language:告訴瀏覽器,它的語言環境
Cache-Control:快取控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連線
Host:主機
4.4、http響應
- 伺服器 ——> 客戶端
Cache-Control: private 快取控制
Connection: keep-alive 連線:保持連線
Content-Encoding: gzip 編碼
Content-Type: text/html; 型別
4.4.1、響應體
Accept:告訴瀏覽器,所支援的資料型別
Accept-Encoding:支援哪種編碼格式:utf-8...
Accept-Language:告訴瀏覽器,它的語言環境
Cache-Control:快取控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連線
Host:主機
Refresh:告訴客戶端多久重新整理一次
Location:讓網頁重新定位
4.4.2、響應狀態碼
- 200:請求響應成功 200
- 3**:請求重定向
- 4**:找不到資源 404
- 5**:伺服器程式碼錯誤 500 502->閘道器錯誤