headerjava
❶ header鏄疛AVA璇璦涓鐨勫叧閿瀛楀悧錛
1銆佸叧閿瀛楁槸鐢佃剳璇璦閲屼簨鍏堝畾涔夌殑錛屾湁鐗瑰埆鎰忎箟鐨鏍囪瘑絎錛屾湁鏃跺張鍙淇濈暀瀛楋紝榪樻湁鐗瑰埆鎰忎箟鐨勫彉閲忋侸ava鐨勫叧閿瀛楀笿ava鐨緙栬瘧鍣鏈夌壒孌婄殑鎰忎箟錛屼粬浠鐢ㄦ潵琛ㄧず涓縐嶆暟鎹綾誨瀷錛屾垨鑰呰〃紺虹▼搴忕殑緇撴瀯絳夛紝鍏抽敭瀛椾笉鑳界敤浣滃彉閲忓悕銆佹柟娉曞悕銆佺被鍚嶃佸寘鍚嶅拰鍙傛暟銆
2銆乭eader涓嶆槸java璇璦涓鐨勫叧閿瀛椼
3銆佸父瑙佺殑java璇璦鐨勫叧閿瀛楁湁class銆乧har銆乨o銆乸ublic銆乸rivate絳夌瓑
4銆佸笇鏈涘逛綘鏈夊府鍔┿
❷ Java鑾峰彇Http鍝嶅簲Header淇℃伅
銆銆鏈鏂囦腑婕旂ず濡備綍閫氳繃URLConnection鑾峰彇Http鍝嶅簲Header淇℃伅
銆銆 浠庡搷搴斾腑鑾峰緱Header淇℃伅
銆銆URL obj = new URL
銆銆URLConnection conn = obj openConnection錛堬級
銆銆Map<String List<String銆 map = conn getHeaderFields錛堬級
銆銆 浠庡搷搴擧eader涓鑾峰彇Server淇℃伅
銆銆Map<String List<String銆 map = conn getHeaderFields錛堬級
銆銆List<String> server = map get錛 Server 錛
銆銆瀹屾暣鐨勭ず渚
銆銆package qiyadeng ;
銆銆import URL;
銆銆import URLConnection;
銆銆import java util List;
銆銆import java util Map;
銆銆public class GetHttpResponseHeader {
銆銆public static void main錛圫tring[] args錛 {
銆銆try {
銆銆URL obj = new URL
銆銆URLConnection conn = obj openConnection錛堬級
銆銆Map<String List<String銆 map = conn getHeaderFields錛堬級
銆銆System out println錛 鏄劇ず鍝嶅簲Header淇℃伅 錛
銆銆for 錛圡ap Entry<String List<String銆 entry : map entrySet錛堬級錛 {
銆銆System out println錛 Key : + entry getKey錛堬級 +
銆銆 Value : + entry getValue錛堬級錛
銆銆}
銆銆System out println錛 浣跨敤key鑾峰緱鍝嶅簲Header淇℃伅 錛
銆銆List<String> server = map get錛 Server 錛
銆銆if 錛坰erver == null錛 {
銆銆System out println錛 Key Server is not found! 錛
銆銆} else {
銆銆for 錛圫tring values : server錛 {
銆銆System out println錛坴alues錛
銆銆}
銆銆}
銆銆} catch 錛圗xception e錛 {
銆銆e printStackTrace錛堬級
銆銆}
銆銆}
銆銆}
銆銆杈撳嚭
銆銆鏄劇ず鍝嶅簲Header淇℃伅鈥
銆銆Key : null Value : [HTTP/ OK]
銆銆Key : X Pingback Value :
銆銆Key : Date Value : [Sun Mar : : GMT]
銆銆Key : Transfer Encoding Value : [chunked]
銆銆Key : Connection Value : [close]
銆銆Key : Content Type Value : [text/; charset=UTF ]
銆銆Key : Server Value : [Apache/ 錛圕entOS錛塢
銆銆Key : X Powered By Value : [PHP/ ]
lishixin/Article/program/Java/hx/201311/25662
❸ java開發 Rest 介面怎樣設計api_key 也就是我的api怎樣才能不被自由訪問,需要在header加入驗證
以下僅供參考:
如果rest端要自己維護api_key,類似存儲在資料庫里,就分發(授權)給客戶端某個api_key,然後客戶端用api_key和一些其他條件如時間戳+簽名去rest端換取一個token,最後客戶端用這個token和rest端進行交互,可以參考下微信的oauth鑒權.
如果rest端不維護api_key,也就省去分發(授權)客戶端api_key的工作,此時客戶端用傳遞的參數和其他條件如時間戳+簽名去rest端換取一個token..同上
上述所說的token都是唯一的,對於同一個客戶端的請求而言,下次刷取token的時候,之前產生的token作廢;
token本身應該要維持在rest端,也應該有一個過期的限制;
(參數)+(api_key)+時間戳 通過加密演算法(如sha2)生成簽名,rest端同邏輯校驗簽名是否合法一般就能卡掉一大部分的訪問,
至於api_key或者token放在哪裡,一般無狀態訪問比較常見是在head里(常見如angularjs項目),這里我覺得隨意,因為只要被攔截都可見,只是head可以放比較多的東西用來障目就是了.
當然,如果正在用的token被攔截,同樣也是可以隨意訪問的,因此可能要求https協議加證書應該會更牢固點(沒試過);
一般就這樣,再高的我也不懂了,如果陳述有什麼問題,者有什麼看法,也還請不吝賜教~