一般服務器的響應狀態有以下幾種:
200 正常
400 未找到頁面
403 拒絕
500 服務器錯誤
比如我們請求bootstrap中文網,
此時的狀態碼是200 OK表示正常,后面的from cache,表示從緩存數據庫(nosql數據庫)中取得的數據,不是從主站點關系型數據庫中取得的數據。
為何要這樣做,因為要做負載均衡。
這是我們再次刷新頁面,按F5或點擊刷新。

這個時候返回304 not modified,表示未修改。
可以避免接下來更多的數據庫查詢,並且沒有返回頁面內容而只是一個 HTTP Header,從而大大的降低帶寬的消耗,對於用戶的感覺也是提高。(假象)
常見做法:
第一次(首次)訪問 200
第二次F5刷新訪問 304
我們現在代碼中獲取狀態碼:
public class Demo {
public static void main(String[] args) throws Exception {
CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、創建實例
HttpGet httpGet=new HttpGet("http://www.bootcss.com"); //2、創建請求
httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0");
CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行
HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、獲取實體
System.out.println(closeableHttpResponse.getStatusLine()); //獲取狀態碼
closeableHttpResponse.close();
closeableHttpClient.close();
}
}
運行結果:HTTP/1.1 200 OK
接下來我們訪問一個不存在的頁面:
HttpGet httpGet=new HttpGet("http://www.huimsoft.com/x/x.html");
運行結果:HTTP/1.1 404 Not Found
實際我們只需要獲取code就行了也就是404或200這樣的關鍵信息。
public class Demo {
public static void main(String[] args) throws Exception {
CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、創建實例
HttpGet httpGet=new HttpGet("http://www.huimsoft.com/x/x.html"); //2、創建請求
httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0");
CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行
HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、獲取實體
System.out.println(closeableHttpResponse.getStatusLine()); //獲取狀態信息
System.out.println(closeableHttpResponse.getStatusLine().getStatusCode()); //獲取狀態碼
closeableHttpResponse.close();
closeableHttpClient.close();
}
}
運行結果:
HTTP/1.1 404 Not Found
404
即closeableHttpResponse.getStatusLine().getStatusCode()表示獲取狀態碼。
