天天看點

使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的

我們用apache的HttpClient這個庫消費雲端的Restful API時,一般都需要兩次HTTP調用,第一次獲得某種token,比如擷取防止跨域請求僞造攻擊Cross-site request forgery - CSRF的token,或者比如微信API的access token,第二次再進行真正的API消費。

通常情況下,第一次請求完畢後,伺服器都會給用戶端傳回一些cookie字段,在第二次請求時,如果使用的是postman測試工具或者apache的HttpClient這個庫,cookie字段都會自動被附加在第二次請求的HTTP頭部。詳情可以參考我寫的另一篇部落格:OData service parallel performance measurement – how to deal with XSRF token in Java Program and JMeter

https://blogs.sap.com/2017/08/28/odata-service-parallele-performance-measurement-how-to-deal-with-xsrf-token-in-java-program-and-jmeter/

本文就來介紹apache的HttpClient,在發送第二個Http請求時,是如何自動插入從第一個請求獲得的伺服器頒發的cookie的。

首先進入HttpClient的單步調試:InternalHttpClient.doExecute方法:

使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的
使用apache的HttpClient進行http通訊,隐藏的HTTP請求頭部字段是如何自動被添加的