第4章:作為Servlet:請求和響應/4.2 請求
阿新 • • 發佈:2018-11-04
-
HTTP所有方法彙總
- GET:獲取伺服器上的資源,如果HTML中沒有指定方法則預設是GET方法
- POST:修改伺服器上的資源
- HEAD:只要求獲取首部部分,有點像GET,但是沒有響應體
- TRACE:要求服務端返回請求訊息
- PUT:訊息體放在URL資源上
- DELETE:刪除URL上的資源
- OPTIONS:獲取HTTP方法列表
- CONNECT:要求連線以便建立隧道
-
GET和POST區別
- GET的引數附加到URL後面,POST引數在訊息體重
- GET引數有位元組限制,POST沒有
- GET引數暴露安全性
- GET約定不能修改資料,POST可以修改資料
-
關於冪等性
- 概念:就是每次請求等到的結果都是一樣的
- 冪等的方法
- GET
- HEAD
- 非冪等的方法
- POST
- PUT
-
請求頭部獲取
- 獲取方法
//列印頭部 Enumeration<String> enumeration = request.getHeaderNames(); while(enumeration.hasMoreElements()){ String name = enumeration.nextElement(); System.out.println("[" + name+"]:"); Enumeration<String> enumeration2 = request.getHeaders(name); while(enumeration2.hasMoreElements()){ System.out.println(" " + enumeration2.nextElement()); } }
- 列印結果
[host]:
127.0.0.1:8081
[connection]:
keep-alive
[cache-control]:
max-age=0
[origin]:
http://127.0.0.1:8081
[upgrade-insecure-requests]:
1
[user-agent]:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
[content-type]:
application/x-www-form-urlencoded
[accept]:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
[referer]:
http://127.0.0.1:8081/myWeb/form.html
[accept-encoding]:
gzip, deflate, br
[accept-language]:
zh-CN,zh;q=0.9
[content-length]:body長度
11
-
請求引數獲取(無論get/post)
- 引數形式都是:key=value&key=value&key=value
//獲取引數名列表和引數對應的值 Enumeration<String> enumeration2 = request.getParameterNames(); while(enumeration2.hasMoreElements()){ String name = enumeration2.nextElement(); System.out.println("[" + name+"]:"); String []values = request.getParameterValues(name); for (String string : values) { System.out.println(string); } }
- 獲取引數名和引數名對應的值
[color]:
light
[color2]:
write