HTTP方法中兩種最常用的 HTTP 方法是:GET 和 POST。
### 一,什么是 HTTP
超文本傳輸協議(HTTP)的設計目的是保證客戶端與服務器之間的通信。HTTP 的工作方式是客戶端與服務器之間
的請求-應答協議。web 瀏覽器可能是客戶端,而計算機上的網絡應用程序也可能作為服務器端。
客戶端(瀏覽器)向服務器提交 HTTP 請求;服務器向客戶端返回響應。響應包含關于請求的狀態信息以及可能
被請求的內容。
兩種 HTTP 請求方法:在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。
? ? ? (1)GET - 從指定的資源請求數據。
? ? ? (2)POST - 向指定的資源提交要被處理的數據。
? ? ??GET和POST區別表格:

### 二,表單(算作是客戶端)提交代碼:
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>HTML表單GET和POST提交方式演示</title>
</head>
<body> <div align="center">
<form id="form1" action="收到數據的頁面.aspx" method="get">
<!--另一種提交方式是將form標簽的method屬性的值改為“method="post"”-->
<table border="1" bordercolor="#0000FF" cellpadding="10" cellspacing="0" width="600">
<tr>
<th colspan="2">注冊表單</th>
</tr>
<tr>
<td>用戶名稱:</td>
<td>
<input type="text" name="user" />
</td>
</tr>
<tr>
<td>輸入密碼:</td>
<td>
<input type="password" name="psw" />
</td>
</tr>
<tr>
<td>確認密碼:</td>
<td><input type="password" name="repsw" />
</td>
</tr>
<tr>
<td>選擇性別:</td>
<td>
<input type="radio" name="sex" value="man" />男
<input type="radio" name="sex" value="woman" />女
</td>
</tr>
<tr>
<td>選擇技術:</td>
<td><input type="checkbox" name="technology" value="JAVA" />JAVA
<input type="checkbox" name="technology" value="HTML" />HTML
<input type="checkbox" name="technology" value="CSS" />CSS
</td>
</tr>
<tr>
<td>選擇國家</td>
<td>
<select name="country">
<option value="none">--選擇國家--</option>
<option value="China">中國</option>
<option value="USA">美國</option>
<option value="UK">英國</option>
</select>
</td>
</tr>
<tr>
<th colspan="2">
<input type="reset" value="清除數據" />
<input type="submit" value="提交數據" />
</th>
</tr>
</table>
</form>
</div>
</body>
</html>
~~~
我們在客戶端這里看不出任何區別,但是表單提交給服務器端就會有明顯的區別(也是最直接的區別):
GET提交方式的地址欄:
file:///C:/Users/Administrator/Desktop/收到數據的頁
面.aspxuser=abc&psw=123&repsw=123&sex=man&technology=JAVA&country=China
POST提交方式的地址欄:
file:///C:/Users/Administrator/Desktop/收到數據的頁面.aspx
從上述的內容可以看出幾點區別:
? ? ??(1)get 提交的信息都顯示在地址欄中;post提交的信息不顯示在地址欄中。
? ? ? (2)get提交對于敏感信息數據不安全;post提交對于敏感信息安全;
? ? ? (3)get提交對于大數據不行,因為地址欄存儲的信息是有限的;post可提交大體積的數據。
? ? ? (4)get提交將信息封裝到了請求信息的請求行中;?post提交將信息封裝到了請求體中;
### 三,在服務器端的區別
如果出現將中文提交到tomcat服務器,服務器默認會用iso8859-1進行解碼,會出現亂碼,通過iso8859-1進行編
碼,再用指定的中文表解碼,即可;
但對于post提交方式提交的中文還有另一種解決辦法,就是直接使用服務端一個對象request對象的
setCharacterEncoding方法直接設置指定的中文代碼表就可以將中文數據解析出來,這個方法只對請求中的數據進行
解碼。
### 四,通過 get 或者 post 方法都可以獲得 Form 的數據,兩者主要區別在于以下幾方面:
(1)GET方式:
URL 改變,在URL 里顯示 HTML Form 參數的 name/value 值。
只適合有少量參數的 HTML Form,因為 URL 長度有字符限制,不能無限長。
涉及安全性的信息,比如用戶密碼,不能用 get,因為會在 URL 上顯示,不安全。
(2)POST方式:
URL 不改變,不在 URL 里顯示 HTML Form 的數據。
Form 提交的信息沒有長度限制。
涉及安全性的信息,如用戶密碼,應采用 post 方式。
### 五,總結
客戶端和服務器端交互的三種方式:
(1)地址欄輸入url地址;get
(2)超鏈接; get
(3)表單; get 和 post
GET和POST的優缺點:
(1)Get是用來從服務器上獲得數據,而Post是用來向服務器上傳遞數據。?
(2)Get將表單中數據的按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL。?
(3)Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多服務器、代理服務器或者用戶代理都會將請求URL記錄到日志文件中,然后放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。?
(4)Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在后面的提到)。?
(5)Get限制Form表單的數據集的值必須為ASCII字符;而Post支持整個ISO10646字符集。默認是用ISO-8859-1編碼 。
(6)Get是Form的默認方法。
(7)get的執行效率要高于post。
(8)對于get方式,服務器端用Request.QueryString獲取變量的值,對于post方式,服務器端用Request.Form獲取
提交的數據。
目前不會做服務器端,因此難以提供更有效的數據論證。學習了服務器端,在進行更詳細的理解。
- 前言
- HTML學習1:Dreamweaver8的安裝
- HTML學習2:初識HTML
- HTML學習3:常用標簽之文本標簽
- HTML學習4:常用標簽之列表標簽
- HTML學習5:常用標簽之圖像標簽
- HTML學習6:常用標簽之超鏈接標簽
- HTML學習7:常用標簽之表格標簽
- HTML學習8:常用標簽之框架標簽
- HTML學習9:常用標簽之表單標簽
- HTML學習10:表單格式化
- HTML學習11:HTTP 方法
- HTML學習12:其他常見標簽之頭標簽
- HTML學習13:其他常見標簽之體標簽
- 輕松學習JavaScript一:為什么學習JavaScript
- 輕松學習JavaScript二:JavaScript語言的基本語法要求
- 輕松學習JavaScript三:JavaScript與HTML的結合
- 輕松學習JavaScript四:JS點擊燈泡來點亮或熄滅這盞燈的網頁特效映射出JS在HTML中作用
- 輕松學習JavaScript五:JavaScript的變量和數據類型
- 輕松學習JavaScript六:JavaScript的表達式與運算符
- 輕松學習JavaScript七:JavaScript的流程控制語句
- 輕松學習JavaScript八:JavaScript函數
- 輕松學習JavaScript九:JavaScript對象和數組
- 輕松學習JavaScript十:JavaScript的Date對象制作一個簡易鐘表
- 輕松學習JavaScript十一:JavaScript基本類型(包含類型轉換)和引用類型
- 輕松學習JavaScript十二:JavaScript基于面向對象之創建對象(一)
- 輕松學習JavaScript十二:JavaScript基于面向對象之創建對象(二)
- 輕松學習JavaScript十三:JavaScript基于面向對象之繼承(包含面向對象繼承機制)
- 輕松學習JavaScript十四:JavaScript的RegExp對象(正則表達式)
- 輕松學習JavaScript十五:JavaScript之BOM簡介
- 輕松學習JavaScript十六:JavaScript的BOM學習(一)
- 輕松學習JavaScript十七:JavaScript的BOM學習(二)
- 輕松學習JavaScript二十九:JavaScript中的this詳解
- CSS基礎學習一:CSS概述
- CSS基礎學習二:如何創建 CSS
- CSS基礎學習三:CSS語法
- CSS基礎學習四:元素選擇器
- CSS基礎學習五:類選擇器
- CSS基礎學習六:id選擇器
- CSS基礎學習七:屬性選擇器
- CSS基礎學習八:派生選擇器
- CSS基礎學習九:偽類
- CSS基礎學習十:偽元素
- CSS基礎學習十一:選擇器的優先級
- CSS基礎學習十二:CSS樣式
- CSS基礎學習十三:盒子模型
- CSS基礎學習十四:盒子模型補充之display屬性設置
- CSS基礎學習十五:盒子模型補充之外邊距合并
- CSS基礎學習十六:CSS盒子模型補充之border-radius屬性
- CSS基礎學習十七:CSS布局之定位
- CSS基礎學習十八:CSS布局之浮動
- CSS基礎學習十九:CSS布局之圖文混排,圖像簽名,多圖拼接和圖片特效
- DIV+CSS實操一:經管系網頁總體模塊布局
- DIV+CSS實操二:經管系網頁添加導航欄和友情鏈接欄
- DIV+CSS實操三:經管系網頁內容模塊添加標題欄和版權信息模塊
- DIV+CSS實操四:經管系網頁內容模塊內容添加(一)
- DIV+CSS實操五:經管系網頁內容模塊內容添加(二)
- DIV+CSS實操六:經管系網頁添加導航欄下拉菜單
- DIV+CSS實操七:中文系內容模塊控制文本不換行和超出指定寬度后用省略號代替
- JS中實現字符串和數組的相互轉化