* 概念:hyper text transfer protocol 超文字傳輸協議
* 傳輸協議:定義了,客戶端和伺服器端通訊時,傳送資料的格式
* 特點:
1. 基於tcp/ip的高階協議
2. 預設埠號:80
3. 基於請求/響應模型的:一次請求對應一次響應
4. 無狀態的:每次請求之間相互獨立,不能互動資料
* 歷史版本:
* 1.0:每一次請求響應都會建立新的連線
* 1.1:復用連線
* 請求訊息資料格式
1. 請求行
請求方式 請求url 請求協議/版本
* 請求方式:
* http協議有7中請求方式,常用的有2種
* get:
1. 請求引數在請求行中,在url後。
2. 請求的url長度有限制的
3. 不太安全
* post:
1. 請求引數在請求體中
2. 請求的url長度沒有限制的
3. 相對安全
2. 請求頭:客戶端瀏覽器告訴伺服器一些資訊
請求頭名稱: 請求頭值
* 常見的請求頭:
1. user-agent:瀏覽器告訴伺服器,我訪問你使用的瀏覽器版本資訊
* 可以在伺服器端獲取該頭的資訊,解決瀏覽器的相容性問題
* 告訴伺服器,我(當前請求)從**來?
* 作用:
1. 防盜煉:
2. 統計工作:
如圖所示其作用:
3. 請求空行,就是用於分割post請求的請求頭,和請求體的。
4. 請求體(正文):
* 封裝post請求訊息的請求引數的
request:
1. request物件和response物件的原理
1. request和response物件是由伺服器建立的。我們來使用它們
2. request物件是來獲取請求訊息,response物件是來設定響應訊息
2. request物件繼承體系結構:
servletrequest -- 介面
| 繼承
httpservletrequest -- 介面
| 實現
org.apache.catalina.connector.requestfacade 類(tomcat)
3. request功能:
1. 獲取請求訊息資料
1. 獲取請求行資料
* 方法:
1. 獲取請求方式 :get
* string getmethod()
2. (*)獲取虛擬目錄:/day14
* string getcontextpath()
3. 獲取servlet路徑: /demo1
* string getservletpath()
4. 獲取get方式請求引數:name=zhangsan
* string getquerystring()
5. (*)獲取請求uri:/day14/demo1
* url:統一資源定位符 : http://localhost/day14/demo1 中華人民共和國
* uri:統一資源識別符號 : /day14/demo1 共和國
6. 獲取協議及版本:http/1.1
* string getprotocol()
2. 再從流物件中拿資料
2. 其他功能:
1. 獲取請求引數通用方式:不論get還是post請求方式都可以使用下列方法來獲取請求引數
1. string getparameter(string name):根據引數名稱獲取引數值 username=zs&password=123
2. string getparametervalues(string name):根據引數名稱獲取引數值
的陣列 hobby=xx&hobby=game
3. enumerationgetparameternames():獲取所有請求的引數名稱
4. mapgetparametermap():獲取所有引數的map集合
* 中文亂碼問題:
* get方式:tomcat 8 已經將get方式亂碼問題解決了
* post方式:會亂碼
* 解決:在獲取引數前,設定request的編碼request.setcharacterencoding("utf-8");
2. 請求**:一種在伺服器內部的資源跳轉方式
1. 步驟:
1. 通過request物件獲取請求**器物件:
requestdispatcher getrequestdispatcher(string path)
2. 使用requestdispatcher物件來進行**:
forward(servletrequest request, servletresponse response)
3. 共享資料:
* 域物件:乙個有作用範圍的物件,可以在範圍內共享資料
* request域:代表一次請求的範圍,一般用於請求**的多個資源中共享資料
* 方法:
1. void setattribute(string name,object obj):儲存資料
2. object getattitude(string name):通過鍵獲取值
3. void removeattribute(string name):通過鍵移除鍵值對
4. 獲取servletcontext:
* servletcontext getservletcontext()
iOS 部分知識點小結
目錄 1.block的基本使用 2.scrollview的底層實現 3.bounds和frame簡介 4.assign和weak的區別 5.列舉中的位運算 6.size和center 7.通知的補充 8.通知多執行緒使用 block的基本使用 scrollview的底層實現 bounds和frame...
執行緒相關部分知識點小結
一 callable和runnable的區別 1 callable規定的方法時call,runnable規定的方法時run,其中實現runnable介面的類需要通過thread類包裝後,在進行啟動 而callable一般交由executeservice來執行 2 callable執行任務後可返回值,...
Request知識點總結
1.獲得行的內容 request.getmethod request.getrequesturi request.getrequesturl request.getcontextpath 常用 request.getremoteaddr 2.獲得頭的內容 request.getheader name...