HTML提交方式post和get區別


 

HTML提交方式post和get區別(實驗)

 

 

 

一、post和get區別

 

get提交,提交的信息都顯示在地址欄中。
post提交,提交的信息不顯示地址欄中,顯示在消息體中。

 

 

 

 

二、客戶端代碼

 

復制代碼
<!DOCTYPE html>
<html>
<head>
<title>Form.html</title>

<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=GB2312">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

</head>

<body>
    <!--
提交方式:get提交。
地址欄:http://localhost:9891/?user=abc&psw=123&repsw=123&sex=nan&tech=java&tech=html&country=cn
        
GET /?user=abc&psw=123&repsw=123&sex=nan&tech=java&tech=html&country=cn HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn,zu;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)
Host: localhost:9891
Connection: Keep-Alive


提交方式:POST
地址欄:http://localhost:9891/

POST / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn,zu;q=0.5
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)
Host: localhost:9891
Content-Length: 68
Connection: Keep-Alive
Cache-Control: no-cache

user=hahah&psw=8989&repsw=8989&sex=nv&tech=html&tech=css&country=usa
        
        
        
        GET提交和POST提交的區別?
        1,
        get提交,提交的信息都顯示在地址欄中。
        post提交,提交的信息不顯示地址欄中。
        
        2,
        get提交,對於敏感的數據信息不安全。
        post提交,對於敏感信息安全。
        
        3,
        get提交,對於大數據不行,因為地址欄存儲體積有限。
        post提交,可以提交大體積數據。 
        
        4,
        get提交,將信息封裝到了請求消息的請求行中。
        post提交,將信息封裝到了請求體中。
        
        在服務端的一個區別。
        如果出現將中文提交到tomcat服務器,服務器默認會用iso8859-1進行解碼會出現亂碼,
        通過iso8859-1進行編碼,在用指定的中文碼表解碼。即可。
        這種方式對get提交和post提交都有效。 
        
        但是對於post提交方式提交的中文,還有另一種解決辦法,就是直接使用服務端一個對象
        request對象的setCharacterEncoding方法直接設置指定的中文碼表就可以將中文數據解析出來。
        這個方法只對請求體中的數據進行解碼。 
        
        
        綜上所述:表單提交,建議使用post。
        
        
        
        和服務端交互的三種方式:
        1,地址欄輸入url地址。get
        2,超鏈接。 get
        3,表單。 get 和  post
        

        
        如果在客戶端進行增強型的校驗(只要有一個組件內容是錯誤,是無法繼續提交的。只有全對才可以提交)
        問,服務端收到數據后,還需要校驗嗎?
        需要,為了安全性。
        為了信息安全,也為了客戶端那邊不要亂提交數據,客戶端和服務端都需要做校驗。
        
        如果服務端做了增強型的校驗,客戶端還需要校驗嗎?
        需要,因為要提高用戶的上網體驗效果,減輕服務器端的壓力。
        
        
        -->
    表單格式化
    <br>
    <!-- action里面的http協議不能忘記 -->
    <form action="http://localhost:9891" method="post">
        <!-- 
             cellpadding 屬性規定單元邊沿與其內容之間的空白。
             注釋:請勿將該屬性與 cellspacing 屬性相混淆,cellspacing 屬性規定的是單元之間的空間。
             從實用角度出發,最好不要規定 cellpadding,而是使用 CSS 來添加內邊距。
         -->
        <table border="1" bordercolor="#00ffff" cellpadding=10 cellspacing=0
            width=400>
            <!-- 由此可見,<th>和<td>標簽都是用於表格單元格顯示的。不同的是<th>在單元格中加粗顯示。 -->
            <tr>
                <!-- 占兩列 -->
                <th colspan="2">注冊表單</th>
            </tr>
            <tr>
                <td>用戶名稱</td>
                <td><input type="text" name="user" value=""><br /></td>
            </tr>
            <tr>
                <td>輸入密碼</td>
                <td><input type="password" name="pwd" /><br /></td>
            </tr>
            <tr>
                <td>確認密碼</td>
                <td><input type="password" name="repwd" /><br /></td>
            </tr>
            <tr>
                <td>選擇性別</td>
                <td><input type="radio" name="sex" value="nan" />男 <input
                    type="radio" name="sex" value="nv" checked="checked" />女<br /></td>
            </tr>
            <tr>
                <td>選擇技術</td>
                <td><input type="checkbox" name="tech" value="java" />JAVA <input
                    type="checkbox" name="tech" value="html" />HTML <input
                    type="checkbox" name="tech" value="css" />CSS <br /></td>
            </tr>
            <tr>
                <td>選擇國家</td>
                <td><select name="country">
                        <option value="none">--選擇國家--</option>
                        <option value="usa">美國</option>
                        <option value="en">英國</option>
                        <!-- 默認選擇中國 -->
                        <option value="cn" selected="selected">中國</option>
                </select></td>
            </tr>
            <tr>
                <th colspan="2"><input type="reset" value="清除數據" /> <input
                    type="submit" value="提交數據" /></th>
            </tr>
        </table>
    </form>
</body>
</html>
復制代碼

 

 

 

 

三、服務器端代碼

 

RegServer.java

 

復制代碼
 1 /**
 2  * 
 3  */
 4 package cn.itcast.server;
 5 
 6 import java.io.IOException;
 7 import java.io.InputStream;
 8 import java.io.PrintWriter;
 9 import java.net.ServerSocket;
10 import java.net.Socket;
11 
12 /**
13  * @author Fry
14  *
15  */
16 public class RegServer {
17 
18     /**
19      * @param args
20      * @throws Exception 
21      */
22     public static void main(String[] args) throws Exception {
23         
24         ServerSocket ss = new ServerSocket(9891);//新建服務端端口
25         
26         Socket s = ss.accept();//端口監聽
27         //輸出服務器主機地址 ans:0:0:0:0:0:0:0:1
28         System.out.println(s.getInetAddress().getHostAddress());
29         InputStream in = s.getInputStream();//字節輸入流,用來接收客戶端消息
30         byte[] buf = new byte[1024];//1024字節的緩存
31         int len = in.read(buf);//將收到的消息讀到buf中
32         //輸出接收到的頁面消息 包括消息行  消息頭  消息體
33         System.out.println(new String(buf,0,len));
34         //字符輸出,用來存儲發送給客戶端的消息
35         PrintWriter out = new PrintWriter(s.getOutputStream(),true);
36         //客戶端接收到的消息
37         out.println("<font color='green' size='7'>注冊成功</font>");
38         //關閉端口
39         s.close();
40         ss.close();
41     }
42 
43 }
復制代碼

 

 

 

 

四、結果

 

 

轉載自https://www.cnblogs.com/Renyi-Fan/p/6930635.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM