Ajax實戰:向伺服器發送請求

來源:互聯網
上載者:User

通過XMLHttpRequest對象向伺服器發送請求是一件相當直接的事情。我們需 要做的所有事情就是給它傳遞一個伺服器頁面的URL,這個頁面將產生資料。就 像下面這樣:

XMLHttpRequest支援大量的HTTP調用語義,包括用來動態產生頁面的可選查 詢字串參數(你可能已經知道這些CGI參數、Form參數或者ServletRequest參數 ,取決於伺服器端開發背景)。在考察請求對象如何支援這些功能之前,我們先 來快速回顧一下HTTP的基礎知識。

HTTP快速入門

HTTP對於網際網路而言可謂是無處不在,以至於我們通常都對它熟視無睹。在 編寫傳統的Web應用時,我們近距離接觸HTTP協議的地方通常是定義一個超連結 或者為一個表單設定method屬性。而對於Ajax而言,我們可以深入那些協議的底 層細節,這使得我們可以做一些驚人的事情。

瀏覽器和Web伺服器之間的HTTP事務包括瀏覽器發起的一個請求和隨後伺服器 返回的一個響應(其中也包括執行Web開發人員編寫的聰明絕頂、激動人心的代碼 ,這一點毫無疑問)。請求和響應本質上來講都是文字資料流,用戶端和伺服器將它 們解釋為首部資訊和緊隨其後的主體部分。你可以將首部資訊想像為寫在信封上 的地址欄,而主體部分是信封中的信件。首部資訊簡單地指示接收方應該如何處 理信件的內容。

一個HTTP請求主要由首部資訊和可能包含一些資料或參數的主體部分組成。 響應則通常包含返回頁面的HTML標記。Mozilla瀏覽器包含了一個很有用的工具 ,叫做LiveHTTPHeaders(見本章“資源”一節以及附錄A)。我們來查 看一下在瀏覽器工作時,那些請求和響應的首部資訊的內容。開啟Google的首頁 ,看看在底層發生了些什麼事情。

我們發送的第一個請求包含有這樣的首部資訊:

GET / HTTP/1.1
  Host: www.google.com
  User-Agent: Mozilla/5.0
  (Windows; U; Windows NT 5.0; en-US; rv:1.7)
  Gecko/20040803 Firefox/0.9.3
  Accept: text/xml,application/xml,
  application/xhtml+xml,text/html;q=0.9,
  text/plain;q=0.8,image/png,*/*;q=0.5
  Accept-Language: en-us,en;q=0.5
  Accept-Encoding: gzip,deflate
  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  Keep-Alive: 300
  Connection: keep-alive
  Cookie: PREF=ID=cabd38877dc0b6a1:TM=1116601572
  :LM=1116601572:S=GD3SsQk3v0adtSBP

第一行告訴我們使用的是哪個HTTP方法。大部分Web開發人員都很熟悉GET,這 是用來擷取文檔的;還有POST,這是用來提交HTML表單的。全球資訊網聯盟(W3C)的規 約還包括了一些其他的通用方法,包括HEAD,用來擷取一個檔案的首部資訊;PUT ,用於向伺服器上傳文檔;DELETE,用來刪除伺服器上的文檔。後續的首部資訊 是用來進行溝通的,用戶端告訴伺服器它所能支援的內容類型、字元集等等。因 為我之前曾經訪問過Google,它還發送了一個cookie,這段簡短的訊息告訴 Google我是誰。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.