HTML 標籤的 method 屬性

定義和用法

method 屬性規定如何發送表單數據(表單數據發送到 action 屬性所規定的頁面)。瀏覽器

表單數據能夠做爲 URL 變量(method="get")或者 HTTP post (method="post")的方式來發送。安全

method 屬性

瀏覽器使用 method 屬性設置的方法將表單中的數據傳送給服務器進行處理。共有兩種方法:POST 方法和 GET 方法。服務器

若是採用 POST 方法,瀏覽器將會按照下面兩步來發送數據。首先,瀏覽器將與 action 屬性中指定的表單處理服務器創建聯繫,一旦創建鏈接以後,瀏覽器就會按分段傳輸的方法將數據發送給服務器。網絡

在服務器端,一旦 POST 樣式的應用程序開始執行時,就應該從一個標誌位置讀取參數,而一旦讀到參數,在應用程序可以使用這些表單值之前,必須對這些參數進行解碼。用戶特定的服務器會明確指定應用程序應該如何接受這些參數。框架

另外一種狀況是採用 GET 方法,這時瀏覽器會與表單處理服務器創建鏈接,而後直接在一個傳輸步驟中發送全部的表單數據:瀏覽器會將數據直接附在表單的 action URL 以後。這二者之間用問號進行分隔。post

通常瀏覽器經過上述任何一種方法均可以傳輸表單信息,而有些服務器只接受其中一種方法提供的數據。能夠在 <form> 標籤的 method (方法)屬性中指明表單處理服務器要用方法來處理數據,使 POST 仍是 GET。性能

POST 仍是 GET?

若是表單處理服務器既支持 POST 方法又支持 GET 方法,那麼你該選擇哪一種方法呢?下面是有關這方面的一些規律:編碼

  • 若是但願得到最佳表單傳輸性能,能夠採用 GET 方法發送只有少數簡短字段的小表單。
  • 一些服務器操做系統在處理能夠當即傳遞給應用程序的命令行參數時,會限制其數目和長度,在這種狀況下,對那些有許多字段或是很長的文本域的表單來講,就應該採用 POST 方法來發送。
  • 若是你在編寫服務器端的表單處理應用程序方面經驗不足,應該選擇 GET 方法。若是採用 POST 方法,就要在讀取和解碼方法作些額外的工做,也許這並不很難,可是也許你不太願意去處理這些問題。
  • 若是安全性是個問題,那麼咱們建議選用 POST 方法。GET 方法將表單參數直接放在應用程序的 URL 中,這樣網絡窺探者能夠很輕鬆地捕獲它們,還能夠從服務器的日誌文件中進行摘錄。若是參數中包含了信用卡賬號這樣的敏感信息,就會在不知不覺中危及用戶的安全。而 POST 應用程序就沒有安全方面的漏洞,在將參數做爲單獨的事務傳輸給服務器進行處理時,至少還能夠採用加密的方法。
  • 若是想在表單以外調用服務器端的應用程序,並且包括向其傳遞參數的過程,就要採用 GET 方法,由於該方法容許把表單這樣的參數包括進來做爲 URL 的一部分。而另外一方面,使用 POST 樣式的應用程序卻但願在 URL 後還能有一個來自瀏覽器額外的傳輸過程,其中傳輸的內容不能做爲傳統 <a> 標籤的內容。

明確傳遞參數

前面的一些建議也能夠做爲選擇此種方式的必定解釋。假設你有一個很簡單的表單,其中只包含 x 和 y 這兩個參數。在對這些元素的值進行編碼時,它們的形式以下所示:加密

x=28&y=66

若是表單採用了 method=GET,那麼用來引用服務器端應用程序的 URL 將以下所示:操作系統

http://www.example.com/example/program?x=28&y=66

在任什麼時候候咱們均可以建立一個傳統的 <a> 標籤,用它在調用帶有所需參數值的表單,其形式以下所示:

<a href="http://www.example.com/example/program?x=28&y=66">

惟一的問題是,分隔參數所用的 & 符號也是字符實體中的插入符號。若是在 <a> 標籤的 href 屬性中放入一個 & 符號,瀏覽器就會將其後面的字符替換成相應的字符實體。

爲了防止出現這種狀況,咱們必須用它的實體對等物來替換 & 符號,也就是用 "&#38;" 或 "&amp;" 來替換。替換以後,上面的那個引用服務器應用程序的非表單示例將以下所示:

<a href="http://www.example.com/example/program?x=28&amp;y=66">

因爲這樣仍是不能在 URL 中使用 & 符號,而且有可能在未來帶來混亂,所以咱們鼓勵服務器設置最後也可以接受用分號做爲參數分隔符。您也能夠看看本身的服務器文檔,瞭解服務器是否支持這種功能。

語法

<form target="value">

屬性值

描述
_blank 在新窗口中打開。
_self 默認。在相同的框架中打開。
_parent 在父框架集中打開。
_top 在整個窗口中打開。
framename 在指定的框架中打開。
相關文章
相關標籤/搜索