Request和Response的HTTPHeader中的Content-Type

lastwinner發表於2011-04-14

這個話題源於一次客戶端與伺服器互動的聯調。下面以java為例來說明。

首先要分清的是,在客戶端發起請求到伺服器端收到請求處理完畢返回資訊再到客戶端收到反饋,這中間經歷了哪些環節:

  1. 首先,客戶端構造了一個HttpRequest,裡面包含了需要提交到伺服器端的資料,客戶端提交該HtteRequest(比如透過HttpClient物件提交)。
  2. 接著,伺服器端收到此請求,在伺服器端對應的物件為HttpServletRequest
  3. 然後,伺服器端根據請求處理後,生成了一個HttpServletResponse,返回給客戶端
  4. 客戶端展現伺服器端返回的資料

清楚了這幾個環節,自然也就可以得知,我們熟悉的HttpServletRequest和HttpServletResponse是伺服器端的物件,而HttpRequest是客戶端的物件,切不可搞混。他們的Content-Type都遵循中定義的規範,但對於不同的物件,他們的Content-Type是不同的,例如,對於HttpRequest/HttpServletRequest物件,在最常見的表單提交中,Content-Type通常是application/x-www-form-urlencoded或multipart/form-data,前者通常用於沒有附件上傳的表單,後者通常用於需要上傳附件的表單,詳閱;而HttpServletResponse的Content-Type通常是text/html、application/json等。

ok,理解清楚了資料互動的過程,也就不難理解他們的Content-Type為何不同了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29867/viewspace-692485/,如需轉載,請註明出處,否則將追究法律責任。

相關文章