XML
什么是XML - Tomcat - Http
- XML:eXtensible Markup Language (可擴展標記語言),
-
XML 是一種標記語言,很類似 HTML,
-
XML 的設計宗旨是傳輸資料,而非顯示資料,
-
XML的使命,就是以一個統一的格式,組織有關系的資料,為不同平臺下的應用程式服務,獨立于軟體和硬體的資訊傳輸工具,
-
XML 僅僅是純文本,有能力處理純文本的軟體都可以處理 XML,不過,能夠讀懂 XML 的應用程式可以有針對性地處理 XML 的標簽,
XML相較于HTML,語法更加嚴格,
XML用途
- 組態檔
- 資料交換格式
- 資料存盤
基本語法

檔案宣告
-
version屬性指定XML版本,固定值是1.0,
-
必須在檔案的第一行書寫檔案宣告,
-
-
encoding指定的字符集,是告訴決議器使用什么字符集進行解碼,而編碼是由文本編輯器決定的
-
通常的寫法:<?xml version="1.0" encoding="utf-8" ?>
-
這樣就要求保存檔案時,必須用utf-8編碼保存,此時要求XML檔案的作者確認當前編輯器保存檔案的編碼方式,
語法規則
① XML宣告要么不寫,要寫就寫在第一行,并且前面沒有任何其他字符,并且必須嚴格遵循語法
② 只能有一個根標簽,所有的其他標簽都必須宣告在根標簽內部
③ 標簽必須正確結束,不能交叉嵌套
⑤ 嚴格區分大小寫
⑥ 開始標簽中,可以自定義添加屬性,但,如果有屬性就必須有值,且必須加引號
⑦ 標簽不能以數字開頭
⑧ 注釋不能嵌套, 注釋采用:<!--注釋-->
⑨ XML中可以使用HTML中的轉義字符
XML物體中不允許出現"&","<",">"等特殊字符,否則XML語法檢查時將出錯,請使用轉義字符
CDATA區
-
當XML檔案中需要寫一些程式代碼、SQL陳述句或其他不希望XML決議器進行決議的內容時,就可以寫在CDATA區中
-
XML決議器會將CDATA區中的內容原封不動的輸出
-
CDATA區的定義格式:<![CDATA[…]]>

處理指令
① 處理指令,簡稱PI (processing instruction),處理指令用來指揮決議引擎如何決議XML檔案內容,
② 處理指令必須以 <? 作為開頭,以 ?> 作為結尾,XML宣告陳述句就是最常見的一種處理指令,
例如,在XML檔案中可以使用xml-stylesheet指令,通知XML決議引擎,應用xsl檔案顯示xml檔案內容,
<?xml-stylesheet type="text/css" href="https://www.cnblogs.com/Open-ing/p/p.xsl"?>
③ XSL對于XML來說就相當于CSS對HTML一樣,XSL是XML的檔案樣式,
XSL 指擴展樣式表語言(EXtensible Stylesheet Language),
XML決議
-
XML決議是指通過決議器讀取XML檔案,解釋語法,并將檔案轉化成物件
-
對XML的一切操作都是由決議開始的,所以決議非常重要,

dom4j
-
dom4j是一個簡單、靈活的開放源代碼的庫,
-
Dom4j是由早期開發JDOM的人分離出來而后獨立開發的,與JDOM不同的是,dom4j使用介面和抽象基類,雖然Dom4j的API相對要復雜一些,但它提供了比JDOM更好的靈活性,
-
dom4j是一個非常優秀的Java XML API,具有性能優異、功能強大和極易使用的特點,現在很多軟體都采用dom4j,例如Hibernate,
-
使用dom4j開發,需匯入dom4j相應的jar包dom4j-1.6.1.jar,所以使用第一步:導包!
-
Dom4j決議步驟
//1、創建決議器物件 SAXReader reader = new SAXReader(); //2、使用決議器將xml檔案轉換為記憶體中的document物件 Document document = reader.read("teachers.xml"); //相對在專案根路徑下查找xml檔案 //3、通過檔案物件可以獲取檔案的根標簽 Element rootElement = document.getRootElement(); //4、根據根標簽獲取所有的根標簽的子標簽集合 List<Element> elements = rootElement.elements(); //5、遍歷集合中的標簽,并將所有的資料決議出來 for (Element element : elements) { //每次遍歷就代表一個teacher資訊 System.out.println("正在遍歷的標簽名:"+element.getName()); System.out.println("正在遍歷標簽的id屬性值:"+element.attributeValue("id")); //獲取teacher的子標簽的內容 String tname = element.elementText("tname"); System.out.println("tname:"+tname); String age = element.elementText("tage"); System.out.println("tage:"+age);
}
修改
//添加一個新的student節點 Element newEle = rootElement.addElement("teacher"); //創建一個良好的xml格式 OutputFormat format = OutputFormat.createPrettyPrint(); //寫入檔案 XMLWriter xmlWriter = new XMLWriter(new FileWriter("teachers.xml"),format); xmlWriter.write(document); xmlWriter.close();
新建
//1.創建檔案 Document document = DocumentHelper.createDocument(); //2.添加根元素 Element root = document.addElement("teachers"); //3.添加元素節點 Element tcEle = root.addElement("teacher"); Element tcEle2 = root.addElement("teacher");
XPath
-
XPath 是在 XML 檔案中查找資訊的語言,類似于jQuery選擇器,
-
XPath通過元素和屬性進行查找,簡化了Dom4j查找節點的程序
| 語法 | 說明 |
|---|---|
| /AAA | 選擇根元素AAA |
| /AAA/CCC | 選擇AAA下的所有CCC子元素 |
| /AAA/DDD/BBB | 選擇AAA的子元素DDD的所有BBB子元素 |
| //BBB | 選擇所有BBB元素 |
| //DDD/BBB | 選擇所有父元素是DDD的BBB元素 |
| /AAA/CCC/DDD/* | 選擇所有路徑依附于/AAA/CCC/DDD的元素 |
| /*/*/*/BBB | 選擇所有的有3個祖先元素的BBB元素 |
| //* | 選擇所有元素 |
| /AAA/BBB[1] | 選擇AAA的第一個BBB子元素 |
| /AAA/BBB[last()] | 選擇AAA的最后一個BBB子元素 |
| //@id | 選擇所有元素的id屬性 |
| //BBB[@id] | 選擇有id屬性的BBB元素 |
| //BBB[@name] | 選擇有name屬性的BBB元素 |
| //BBB[@*] | 選擇有任意屬性的BBB元素 |
| //BBB[not(@*)] | 選擇沒有屬性的BBB元素 |
| //BBB[@id='b1'] | 選擇含有屬性id且其值為'b1'的BBB元素 |
| //BBB[@name='bbb'] | 選擇含有屬性name且其值為'bbb'的BBB元素 |
使用
① 導包:jaxen-1.1-beta-6.jar
② dom4j怎么做就怎么做,只是在查找元素的時候可以使用xpath了
③ 獲取所有符合條件的節點
-
document.selectNodes(String xpathExpression) :回傳List集合
-
舉例:document.selectNodes("/students/student")
-
-
document.selectSingleNode(String xpathExpression) :獲取符合條件的單個節點,即一個Node物件,如果符合條件的節點有多個,那么回傳第一個,
-
舉例:document.selectSingleNode("/students/student[@id='1']")
-
Tomcat
Tomcat下載
-
Tomcat官方網站:http://tomcat.apache.org/
-
安裝版:需要安裝,一般不考慮使用,
-
解壓版: 直接解壓縮使用,我們使用的版本,
-
因為tomcat服務器軟體需要使用java環境,所以需要正確配置JAVA_HOME,
安裝
解壓apache-tomcat-7.0.79-windows-x64.zip到非中文無空格目錄中

-
bin:該目錄下存放的是二進制可執行檔案,如果是安裝版,那么這個目錄下會有兩個exe檔案:tomcat6.exe、tomcat6w.exe,前者是在控制臺下啟動Tomcat,后者是彈出GUI視窗啟動Tomcat;如果是解壓版,那么會有startup.bat和shutdown.bat檔案,startup.bat用來啟動Tomcat,但需要先配置JAVA_HOME環境變數才能啟動,shutdawn.bat用來停止Tomcat;
-
conf:這是一個非常非常重要的目錄,這個目錄下有四個最為重要的檔案:
-
server.xml:配置整個服務器資訊,例如修改埠號,默認HTTP請求的埠號是:8080
-
tomcat-users.xml:存盤tomcat用戶的檔案,這里保存的是tomcat的用戶名及密碼,以及用戶的角色資訊,可以按著該檔案中的注釋資訊添加tomcat用戶,然后就可以在Tomcat主頁中進入Tomcat Manager頁面了;
-
web.xml:部署描述符檔案,這個檔案中注冊了很多MIME型別,即檔案型別,這些MIME型別是客戶端與服務器之間說明檔案型別的,如用戶請求一個html網頁,那么服務器還會告訴客戶端瀏覽器回應的檔案是text/html型別的,這就是一個MIME型別,客戶端瀏覽器通過這個MIME型別就知道如何處理它了,當然是在瀏覽器中顯示這個html檔案了,但如果服務器回應的是一個exe檔案,那么瀏覽器就不可能顯示它,而是應該彈出下載視窗才對,MIME就是用來說明檔案的內容是什么型別的!
-
context.xml:對所有應用的統一配置,通常我們不會去配置它,
-
-
lib:Tomcat的類別庫,里面是一大堆jar檔案,
-
logs:這個目錄中都是日志檔案,記錄了Tomcat啟動和關閉的資訊,如果啟動Tomcat時有錯誤,那么例外也會記錄在日志檔案中,
-
temp:存放Tomcat的臨時檔案,這個目錄下的東西可以在停止Tomcat后洗掉!
-
webapps:存放web專案的目錄,其中每個檔案夾都是一個專案;如果這個目錄下已經存在了目錄,那么都是tomcat自帶的專案,其中ROOT是一個特殊的默認專案
-
work:運行時生成的檔案,最終運行的檔案都在這里,通過webapps中的專案生成的,可以把這個目錄下的內容洗掉,再次運行時會生再次生成work目錄,當客戶端用戶訪問一個JSP檔案時,Tomcat會通過JSP生成Java檔案,然后再編譯Java檔案生成class檔案,生成的java和class檔案都會存放到這個目錄下,
-
LICENSE:許可證,
-
NOTICE:說明檔案,
啟動
在命令列中運行catalina run或者 Tomcat解壓目錄下雙擊startup.bat 啟動Tomcat服務器,在瀏覽器地址欄訪問地址進行測驗http://localhost:8080
如果啟動失敗,查看如下的情況:
情況一:如果雙擊startup.bat后視窗一閃而過,請查看JAVA_HOME是否配置正確,
startup.bat會呼叫catalina.bat,而catalina.bat會呼叫setclasspath.bat,setclasspath.bat會使用JAVA_HOME環境變數,所以我們必須在啟動Tomcat之前把JAVA_HOME配置正確,
情況二:如果啟動失敗,提示埠號被占用,則將默認的8080埠修改為其他未使用的值,例如8989等,
打開:解壓目錄\conf\server.xml,找到第一個Connector標簽,修改port屬性

web服務器在啟動時,實際上是監聽了本機上的一個埠,當有客戶端向該埠發送請求時,web服務器就會處理請求,但是如果不是向其所監聽的埠發送請求,web服務器不會做任何回應,例如:Tomcat啟動監聽了8989埠,而訪問的地址是http://localhost:8080,將不能正常訪問,
在Eclipse中創建Tomcat鏡像
① 在Servers視窗里點擊超鏈接或在空白處右鍵→New

②選擇對應的安裝版本,點next

注意1:關聯Tomcat鏡像時,Eclipse會從本地Tomcat中復制資訊及檔案(如下圖),之后二者的配置資訊就沒有關系了,其中任何一個的配置資訊發生變化都不會自動同步到另外一個,所以,如果修改埠號的話,需要Tomcat目錄中和Eclipse的鏡像檔案中都要修改埠號才可以,

注意2:Tomcat服務器在Eclipse中啟動以后,在瀏覽器中訪問:http://localhost:8080會發現訪問失敗,因為此時在Eclipse中啟動的webapps目錄與之前方式訪問使用的webapps目錄不一致,

動態Web工程部署


專案目錄結構說明
-
src:存放Java源代碼的目錄,
-
Libraries:存放的是Tomcat及JRE中的jar包,
-
build:自動編譯.java檔案的目錄,
-
WebContent:存放的是需要部署到服務器的檔案
-
META-INF:是存放工程自身相關的一些資訊,元檔案資訊,通常由開發工具和環境自動生成,
-
MANIFEST.MF:配置清單檔案
-
-
WEB-INF:這個目錄下的檔案,是不能被客戶端直接訪問的,
-
lib:用于存放該工程用到的庫,粘貼過來以后,不再需要build path
-
web.xml:web工程的組態檔,完成用戶請求的邏輯名稱到真正的servlet類的映射,
-
classes:存放Java位元組碼檔案的目錄,
-
凡是客戶端能訪問的資源(*.html或 *.jpg)必須跟WEB-INF在同一目錄,即放在Web根目錄下的資源,從客戶端是可以通過URL地址直接訪問的,
-
部署/移除Web專案
右鍵點擊剛創建好的Tomcat服務器,選擇Add and Remove …

將左邊的專案 add 到右邊,即為部署:
將右邊的專案remove到左邊,即為移除:

部署或移除web專案以后,需要重啟服務器
部署Web專案的原理
-
當我們使用Eclipse將專案部署到Tomcat中時,我們發現,在Tomcat下的webapps目錄下并沒有我們創建好的專案,但是當通過Eclipse啟動服務器后,專案卻真的可以訪問到,這是為什么呢?
-
實際上,Eclipse在使用Tomcat時,并沒有將專案部署到Tomcat的目錄下,而是在其作業空間中,創建了一個Tomcat的鏡像,Eclipse啟動的Tomcat是他自己配置的鏡像,
-
Eclipse鏡像所在目錄:你的作業空間目錄.metadata.plugins\org.eclipse.wst.server.core\tmp0
(重啟Tomcat以后,雙擊Servers-TOmcat v7.0即會看到部署好的web工程存在的默認位置,)
或者通過如下的方式,也可以直接找到部署的位置:


-
在這個目錄下,我們會發現一個和Tomcat安裝目錄幾乎一模一樣的目錄結構,
-
在這里Eclipse中Tomcat鏡像組態檔也是獨立的,而我們所創建的專案是部署到wtpwebapps目錄下的,這樣做的好處是Eclipse中Tomcat和我們本機的Tomcat可以保持相互獨立,不會影響彼此,但是千萬注意,此時千萬不要試圖洗掉原有的Tomcat目錄結構或移動位置,
總結:啟動服務器以后,我們的web專案會部署到服務器目錄的wtpwebapps檔案夾的目錄下,index.jsp也是直接宣告在此專案目錄下的,
HTTP
- HTTP 超文本傳輸協議 (HTTP-Hypertext transfer protocol),是一個屬于應用層的面向物件的協議,由于其簡捷、快速的方式,適用于分布式超媒體資訊系統,它是一種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網檔案的資料傳送協議,
-
客戶端與服務端通信時傳輸的內容我們稱之為報文,HTTP協議就是規定報文的格式,
-
HTTP就是一個通信規則,這個規則規定了客戶端發送給服務器的報文格式,也規定了服務器發送給客戶端的報文格式,實際我們要學習的就是這兩種報文,客戶端發送給服務器的稱為”請求報文“,服務器發送給客戶端的稱為”回應報文“,
瀏覽器與服務器之間的通信程序要經歷四個步驟

-
瀏覽器與WEB服務器的連接程序是短暫的,每次連接只處理一個請求和回應,對每一個頁面的訪問,瀏覽器與WEB服務器都要建立一次單獨的連接,
-
瀏覽器到WEB服務器之間的所有通訊都是完全獨立分開的請求和回應對,
報文
-
請求報文:瀏覽器發給服務器
-
回應報文:服務器發回給瀏覽器

請求報文
GET請求
1、由于請求引數在請求首行中已經攜帶了,所以沒有請求體,也沒有請求空行
2、請求引數拼接在url地址中,地址欄可見[url?name1=value1&name2=value2],不安全
3、由于引數在地址欄中攜帶,所以有大小限制[地址欄資料大小一般限制為4k],只能攜帶純文本
4、get請求引數只能上傳文本資料
5、沒有請求體,所以封裝和決議都快,效率高, 瀏覽器默認提交的請求都是get請求[比如:① 地址欄輸入url地址回車,②點擊超鏈接a , ③ form表單默認方式...]
請求頭
Host: localhost:8080 主機虛擬地址 Connection: keep-alive 長連接 Upgrade-Insecure-Requests: 1 請求協議的自動升級[http的請求,服務器卻是https的,瀏覽器自動會將請求協議升級為https的] User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36 - 用戶系統資訊 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 - 瀏覽器支持的檔案型別 Referer: http://localhost:8080/05_web_tomcat/login.html - 當前頁面的上一個頁面的路徑[當前頁面通過哪個頁面跳轉過來的]: 可以通過此路徑跳轉回上一個頁面, 廣告計費,防止盜鏈 Accept-Encoding: gzip, deflate, br - 瀏覽器支持的壓縮格式 Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7 - 瀏覽器支持的語言
POST請求
POST請求要求將form標簽的method的屬性設定為post
1、POST請求有請求體,而GET請求沒有請求體,
2、post請求資料在請求體中攜帶,請求體資料大小沒有限制,可以用來上傳所有內容[檔案、文本]
3、只能使用post請求上傳檔案
4、post請求報文多了和請求體相關的配置[請求頭]
5、地址欄引數不可見,相對安全
6、post效率比get低
回應報文
報文格式(4部分)
-
回應首行(回應行);
-
回應頭資訊(回應頭);
-
空行;
-
回應體;
回應碼
-
200:請求成功,瀏覽器會把回應體內容(通常是html)顯示在瀏覽器中;
-
404:請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;
- 500:請求資源找到了,但服務器內部出現了錯誤;
- 302:重定向,當回應碼為302時,表示服務器要求瀏覽器重新再發一個請求,服務器會發送一個回應頭Location,它指定了新請求的URL地址;
- 304 (未修改) 自從上次請求后,請求的網頁未修改過,服務器回傳此回應時,不會回傳網頁內容,
- 405 (方法禁用) 禁用請求中指定的方法,
MIME型別
HTTP內容型別:當前回應體的資料型別,
① 需要指出的是在瀏覽器和服務器之間傳輸的資料型別并非都是文本型別,還包括圖片、視頻、音頻等多媒體型別,這些多媒體型別是使用MIME型別定義的,
② MIME的英文全稱是"Multipurpose Internet Mail Extensions" 多功能Internet 郵件擴充服務,MIME型別的格式是“大型別/小型別”,并與某一種檔案的擴展名相對應,
| 檔案 | MIME型別 |
|---|---|
| 超文本標記語言文本 | .html,.htm text/html |
| 普通文本 | .txt text/plain |
| RTF文本 | .rtf application/rtf |
| GIF圖形 | .gif image/gif |
| JPEG圖形 | .jpeg,.jpg image/jpeg |
| au聲音檔案 | .au audio/basic |
| MIDI音樂檔案 | mid,.midi audio/midi,audio/x-midi |
| RealAudio音樂檔案 | .ra, .ram audio/x-pn-realaudio |
| MPEG檔案 | .mpg,.mpeg video/mpeg |
| AVI檔案 | .avi video/x-msvideo |
| GZIP檔案 | .gz application/x-gzip |
| TAR檔案 | .tar application/x-tar |
1xx(臨時回應) 表示臨時回應并需要請求者繼續執行操作的狀態代碼, 代碼 說明 100 (繼續) 請求者應當繼續提出請求,服務器回傳此代碼表示已收到請求的第一部分,正在等待其余部分, 101 (切換協議) 請求者已要求服務器切換協議,服務器已確認并準備切換, 2xx (成功) 表示成功處理了請求的狀態代碼, 代碼 說明 200 (成功) 服務器已成功處理了請求,通常,這表示服務器提供了請求的網頁, 201 (已創建) 請求成功并且服務器創建了新的資源, 202 (已接受) 服務器已接受請求,但尚未處理, 203 (非授權資訊) 服務器已成功處理了請求,但回傳的資訊可能來自另一來源, 204 (無內容) 服務器成功處理了請求,但沒有回傳任何內容, 205 (重置內容) 服務器成功處理了請求,但沒有回傳任何內容, 206 (部分內容) 服務器成功處理了部分 GET 請求, 3xx (重定向) 表示要完成請求,需要進一步操作, 通常,這些狀態代碼用來重定向, 代碼 說明 300 (多種選擇) 針對請求,服務器可執行多種操作,服務器可根據請求者 (user agent) 選擇一項操作,或提供操作串列供請求者選擇, 301 (永久移動) 請求的網頁已永久移動到新位置,服務器回傳此回應(對 GET 或 HEAD 請求的回應)時,會自動將請求者轉到新位置, 302 (臨時移動) 服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求, 303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索回應時,服務器回傳此代碼, 304 (未修改) 自從上次請求后,請求的網頁未修改過,服務器回傳此回應時,不會回傳網頁內容, 305 (使用代理) 請求者只能使用代理訪問請求的網頁,如果服務器回傳此回應,還表示請求者應使用代理, 307 (臨時重定向) 服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求, 4xx(請求錯誤) 這些狀態代碼表示請求可能出錯,妨礙了服務器的處理, 代碼 說明 400 (錯誤請求) 服務器不理解請求的語法, 401 (未授權) 請求要求身份驗證, 對于需要登錄的網頁,服務器可能回傳此回應, 403 (禁止) 服務器拒絕請求, 404 (未找到) 服務器找不到請求的網頁, 405 (方法禁用) 禁用請求中指定的方法, 406 (不接受) 無法使用請求的內容特性回應請求的網頁, 407 (需要代理授權) 此狀態代碼與 401(未授權)類似,但指定請求者應當授權使用代理, 408 (請求超時) 服務器等候請求時發生超時, 409 (沖突) 服務器在完成請求時發生沖突,服務器必須在回應中包含有關沖突的資訊, 410 (已洗掉) 如果請求的資源已永久洗掉,服務器就會回傳此回應, 411 (需要有效長度) 服務器不接受不含有效內容長度標頭欄位的請求, 412 (未滿足前提條件) 服務器未滿足請求者在請求中設定的其中一個前提條件, 413 (請求實體過大) 服務器無法處理請求,因為請求物體過大,超出服務器的處理能力, 414 (請求的 URI 過長) 請求的 URI(通常為網址)過長,服務器無法處理, 415 (不支持的媒體型別) 請求的格式不受請求頁面的支持, 416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會回傳此狀態代碼, 417 (未滿足期望值) 服務器未滿足”期望”請求標頭欄位的要求, 5xx(服務器錯誤) 這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤, 這些錯誤可能是服務器本身的錯誤,而不是請求出錯, 代碼 說明 500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求, 501 (尚未實施) 服務器不具備完成請求的功能,例如,服務器無法識別請求方法時可能會回傳此代碼, 502 (錯誤網關) 服務器作為網關或代理,從上游服務器收到無效回應, 503 (服務不可用) 服務器目前無法使用(由于超載或停機維護),通常,這只是暫時狀態, 504 (網關超時) 服務器作為網關或代理,但是沒有及時從上游服務器收到請求, 505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協議版本, HttpWatch狀態碼Result is 200 - 服務器成功回傳網頁,客戶端請求已成功, 302 - 物件臨時移動,服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求, 304 - 屬于重定向,自上次請求后,請求的網頁未修改過,服務器回傳此回應時,不會回傳網頁內容, 401 - 未授權,請求要求身份驗證, 對于需要登錄的網頁,服務器可能回傳此回應, 404 - 未找到,服務器找不到請求的網頁, 2xx - 成功,表示服務器成功地接受了客戶端請求, 3xx - 重定向,表示要完成請求,需要進一步操作,客戶端瀏覽器必須采取更多操作來實作請求,例如,瀏覽器可能不得不請求服務器上的不同的頁面,或通過代理服務器重復該請求, 4xx - 請求錯誤,這些狀態代碼表示請求可能出錯,妨礙了服務器的處理, 5xx - 服務器錯誤,表示服務器在嘗試處理請求時發生內部錯誤, 這些錯誤可能是服務器本身的錯誤,而不是請求出錯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/88278.html
標籤:Html/Css
上一篇:漂亮的無序串列樣式
下一篇:css重點知識和bug解決方法
