我們熟知的response對象:
response.setContentType("application/octet-stream;charset=utf-8");//服務器返回類型
response.setHeader("User-Agent", "Mozilla/5.0");//瀏覽器類型及版本、操作系統及版本、瀏覽器內核、等信息的標識
常見header:
headers = {
'Host':'www.super-ping.com',
'Connection':'keep-alive',
'Cache-Control':'max-age=0',
'Accept': 'text/html, */*; q=0.01',
'X-Requested-With': 'XMLHttpRequest', //XMLHttpRequest是ajax請求
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36',
'DNT':'1',
'Referer': 'http://www.super-ping.com/?ping=www.google.com&locale=sc',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'zh-CN,zh;q=0.8,ja;q=0.6'
}
某些網站反感爬蟲的到訪,於是對爬蟲一律拒絕請求。
這時候我們需要僞裝成瀏覽器,這可以通過修改http包中的header來實現。
上面的例子裏面user-agent就是僞裝過的。
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36'
還可以通過header判斷是不是ajax請求
public boolean isAjaxRequest(HttpServletRequest request){
String header = request.getHeader("X-Requested-With");
boolean isAjax = "XMLHttpRequest".equals(header) ? true:false;
return isAjax;
}
對付”防盜鏈”:
某些站點有所謂的反盜鏈設置,其實說穿了很簡單,
就是檢查你發送請求的header裏面,referer站點是不是他自己,
所以我們只需要像把headers的referer改成該網站即可。
header = { 'Referer':'http://www.cnbeta.com/articles' }
總之 header 你可以放入任何想要的header,來做一些僞裝。
例如,有些網站喜歡讀取header中的X-Forwarded-For來看看人家的真實IP,可以直接把X-Forwarde-For改了。