tomcat web.xml配置
tomcat 禁用不安全的http請(qǐng)求方式(轉(zhuǎn))?
1:我的配置
web.xml(url下禁用的請(qǐng)求方式)?
<security-constraint>?
<web-resource-collection>?
<url-pattern>/*</url-pattern>?
<http-method>PUT</http-method>?
<http-method>DELETE</http-method>?
<http-method>HEAD</http-method>?
<http-method>OPTIONS</http-method>?
<http-method>TRACE</http-method>?
</web-resource-collection>?
<auth-constraint>?
</auth-constraint>?
</security-constraint>?
在網(wǎng)上找的,比較詳細(xì)
WebDAV (Web-based Distributed Authoring and Versioning) 一種基于 HTTP 1.1協(xié)議的通信協(xié)議.它擴(kuò)展了HTTP 1.1,在GET、POST、HEAD等幾個(gè)HTTP標(biāo)準(zhǔn)方法以外添加了一些新的方法,使應(yīng)用程序可直接對(duì)Web Server直接讀寫,并支持寫文件鎖定(Locking)及解鎖(Unlock),還可以支持文件的版本控制。
HTTP/1.1協(xié)議中共定義了八種方法(有時(shí)也叫“動(dòng)作”)來(lái)表明Request-URI指定的資源的不同操作方式:OPTIONS 返回服務(wù)器針對(duì)特定資源所支持的HTTP請(qǐng)求方法。也可以利用向Web服務(wù)器發(fā)送’*’的請(qǐng)求來(lái)測(cè)試服務(wù)器的功能性?!?/p>
HEAD 向服務(wù)器索要與GET請(qǐng)求相一致的響應(yīng),只不過(guò)響應(yīng)體將不會(huì)被返回。這一方法可以在不必傳輸整個(gè)響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。
GET 向特定的資源發(fā)出請(qǐng)求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中,例如在web app.中。其中一個(gè)原因是GET可能會(huì)被網(wǎng)絡(luò)蜘蛛等隨意訪問(wèn)?!?/p>
POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請(qǐng)求體中。POST請(qǐng)求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改?!?/p>
PUT 向指定資源位置上傳其最新內(nèi)容。
DELETE 請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源?!?/p>
TRACE 回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷。
CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器?!?/p>
方法名稱是區(qū)分大小寫的。當(dāng)某個(gè)請(qǐng)求所針對(duì)的資源不支持對(duì)應(yīng)的請(qǐng)求方法的時(shí)候,服務(wù)器應(yīng)當(dāng)返回狀態(tài)碼405(Method Not Allowed);當(dāng)服務(wù)器不認(rèn)識(shí)或者不支持對(duì)應(yīng)的請(qǐng)求方法的時(shí)候,應(yīng)當(dāng)返回狀態(tài)碼501(Not Implemented)?!?/p>
HTTP服務(wù)器至少應(yīng)該實(shí)現(xiàn)GET和HEAD方法,其他方法都是可選的。當(dāng)然,所有的方法支持的實(shí)現(xiàn)都應(yīng)當(dāng)符合下述的方法各自的語(yǔ)義定義。此外,除了上述方法,特定的HTTP服務(wù)器還能夠擴(kuò)展自定義的方法。
http的訪問(wèn)中,一般常用的兩個(gè)方法是:GET和POST。其實(shí)主要是針對(duì)DELETE等方法的禁用。有兩種方式:一、修改應(yīng)用中的web.xml:
第一步:修改web-app協(xié)議Xml代碼 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 第二部:在應(yīng)用程序的web.xml中添加如下的代碼即可<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>二、修改tomcat中conf下的web.xml?
修改應(yīng)用中的web.xml就只針對(duì)本應(yīng)用起作用,修改tomcat中的web.xml就可以對(duì)啟動(dòng)在該tomcat下所有的應(yīng)用起作用。
在未限制DELETE等方法前(即未做上述web.xml的內(nèi)容的添加之前),測(cè)試http的DELETE方法的效果,方式如下:
第一步:
在Tomcat的web.xml 文件中配置org.apache.catalina.servlets.DefaultServlet的初始化參數(shù)?
readonly?
false?
readonly參數(shù)默認(rèn)是true,即不允許delete和put操作,所以默認(rèn)的通過(guò)XMLHttpRequest對(duì)象的put或者delete方法訪問(wèn)就會(huì)報(bào)告 http 403 forbidden 錯(cuò)誤。
第二步:
從客戶端通過(guò) Ajax XMLHTTPRequest 發(fā)起 DELETE/PUT 請(qǐng)求,利用AJAX的方式調(diào)用DELETE,
<script type="text/javascript"> function getXMLHTTPRequest(){ if (XMLHttpRequest) { return new XMLHttpRequest(); } else { try{ return new ActiveXObject('Msxml2.XMLHTTP'); }catch(e){ return new ActiveXObject('Microsoft.XMLHTTP'); } } } var req = getXMLHTTPRequest(); req.open('DELETE','http://localhost:8080/yours_web/test.html',false); req.send(null); document.write(req.responseText); </script>document.write(req.responseText);這一句既是調(diào)用了Ajax,也是將刪除的test.html返回回來(lái),如果刪除成功,那么應(yīng)該看到的是404的效果。
另外對(duì)于web.xml配置參數(shù)的說(shuō)明可參考:
http://www.blogjava.net/baoyaer/articles/107428.html
對(duì)于http深入了解可以參考:
http://blog.csdn.net/lyq5655779/article/details/7515284
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的tomcat web.xml配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: spring-boot配置readonl
- 下一篇: LevelDB