1-wampserver安裝/使用 get與post請求/區別 表單發送請求 ajax

wampserver的安裝和使用

  • 簡介

      W: Windows操作系統
      A: Apache 世界排名第一的服務器軟件,特點是簡單,速度快,性能穩定
      M: MySQL 開源免費的數據庫軟件,特點是體積小、速度快、使用成本低
      P: PHP 超文本預處理器,直接將代碼嵌入HTML文檔中執行, 特點是簡單易學,容易上手
    
  • 安裝

      1.雙擊提供的安裝包
      2.點擊Next
      3.選擇安裝路徑(注意:路徑中不要出現中文)
      4.勾選兩個方框,點擊next繼續安裝
      5.點擊install開始安裝
      6.安裝完畢以后點擊finish即可啟動wamp
    
  • 調試

    • 測試訪問

         打開瀏覽器輸入127.0.0.1查看顯示的內容
      
    • 修改默認的網站內容

        (1)找到D:\wamp\bin\apache\Apache2.2.21\conf\httpd.conf
        (2)打開httpd.conf查找DocumentRoot找到網站對應的目錄
        (3)將網站放到d:/wamp/www/目錄下
        (4)修改使用自己的index.html文件
      
    • 配置局域網訪問

        (1)關閉電腦防火墻
        (2)修改httpd.conf文件Deny from all為Allow from all(192行),在httpd.conf文件234行下面添加Allow from all
        (3)重啟WAMP
      
    • 修改默認端口號

        (1)在httpd.conf文件中搜索Listen , 改為你想要的數字即可
        (2)重啟WAMP(注意每次修改配置文件都需要重啟)
      

get請求和post請求

  • get請求
    • get請求提交的數據可以在地址欄中看到
    • get請求的數據在PHP中可以通過$_GET["key"]的形式獲取
    • 如果$_GET中沒有key對應的值會報錯
  • post請求
    • post請求提交的數據不會在地址欄中顯示
    • post請求提交的數據在PHP中可以通過$_POST["key"]的形式獲取
    • 如果$_POST中沒有key對應的值會報錯
  • 注意
    • get發送的請求數據不能通過$_POST獲取

get/post區別

  • 安全性
    • get請求 : 請求的參數直接拼接在URL后面發送給服務器,可以通過瀏覽記錄來查看,另外如果黑客攻破了服務器拿到服務器的訪問日志,那么所有的訪問記錄都會被暴露。
    • post請求 : 請求參數存放在請求體中傳遞,相對安全。
  • 大小限制
    • get請求

      • 因為"特定的瀏覽器及服務器對請求的URL長度有限制",而get請求的參數又全部拼接在URL后面處理。
      • 所以在使用get方法網絡請求的時候,對參數的大小有限制。
    • post請求

      • 因為POST不是通過URL提交數據,所以POST是沒有大小限制。
      • HTTP協議規范也沒有進行大小限制,起限制作用的是服務器的處理程序的處理能力。
  • 請求體
    • get請求所有的參數都拼接在請求路徑后面,所以沒有請求體
    • post請求把參數全部都放在請求體中傳遞。

表單發送請求

發送get請求說明
    在form表單中通過action來設置請求的服務器地址
    默認情況下發送的請求是get請求,可以通過method方法來修改為使用post請求
    如果想要提交數據(參數)給服務器,那么在表單中必須要擁有name屬性,只要添加了name屬性,那么在提交數據的時候
    系統會自動的把name里面的key和對應的value值拼接在一起,如果有多個參數那么就使用&來隔開

    如果是通過get提交給服務器端的數據,那么在php文件可以通過$_GET全局對象獲取
    如果要獲取傳入的某個元素,那么就直接使用$_GET["key"]的方式來讀取
  • 示例代碼

          <form action="01-get-php.php">
              <input type="text" placeholder="請傳入用戶名" name="userName">
              <input type="text" placeholder="請傳入密碼" name="password">
              <input type="submit">
          </form> 
    
發送post請求
  • 示例代碼

          <form action="01-get-php.php" method="post">
              <input type="text" placeholder="請傳入用戶名" name="userName">
              <input type="text" placeholder="請傳入密碼" name="password">
              <input type="submit">
          </form>
          //服務器端具體處理
          echo $_POST["userName"]
          echo $_POST["password"]
    
  • $_GET獲取get請求提交的數據 $_POST獲取post請求提交的數據 $_FILES獲取post請求提交的文件

表單進行文件上傳
  • 說明

          01 上傳文件通過都發送post請求來實現(設置method)
          02 獲取上傳的文件需要使用$_Files全局對象
          03 進行文件上傳的時候需要設置enctype屬性(multipart/from-data)
          04 $_Files本身是一個對象(字典),保存所有上傳的文件
              具體的屬性:name - 文件的名稱
                          type - 文件的類型
                          tmp_name - 文件的臨時存儲路徑
                          error- 錯誤信息
                          size - 文件的大小
          05 用戶上傳的文件會保存在一個臨時的文件夾中,如果用戶沒有進行后續的處理,那么這個臨時的文件將被刪除,因為服務器也有自己的容量限制,如果想要繼續使用那么需要額外處理,否則就會被直接刪除。
          建議:可以使用move_uploaded_file($_FILES["file"]["tmp_name"],新路徑)把文件保存到安全的位置。
          
          06 上傳大文件修改修改服務器端的限制
              說明:POST請求本身對文件的大小沒有限制,但是服務器端會對文件的大小進行限制,如果要上傳大文件,那么得設置讓服務器端打開大文件上傳的權限。
              需要修改的文件為:
              需要修改的配置為:
                  (1)是否允許上傳
                  (2)上傳的最大限制
                  (3)post請求的最大限制
                  (4)腳本執行的最大時間
                  (5)接收提交數據的時間
                  (6)最大內存消耗
              修改文件之后,重啟wamp服務器軟件。
    
  • 示例代碼

          <form action="03-upload-php.php" method="post">
              <input type="file"  name="file">
              <input type="submit">
          </form>
    

Ajax

  • 定義: Ajax(Async javascript and XML)是一門異步的用于發送網絡請求的技術。
  • UI刷新:通常情況下,每次提交表達的時候,都會刷新界面,而使用ajax發送請求可以實現異步發送請求獲取數據而不刷新界面效果。
使用Ajax發送網絡請求的基本步驟
    01 創建異步對象(XMLHTTPRequest),存在兼容性問題
    02 請求請求路徑(open)
    03 發送請求(send)
    04 監聽請求的狀態(onreadystatechange)
    05 處理請求結果
    
    onreadystatechange的幾種狀態:
    (1)請求未初始化 - 0
    (2)服務器連接已經建立 - 1
    (3)請求已經接收 -2
    (4)請求處理中 -3
    (5)請求已經完成,且響應已經就緒 -4
    
    處理請求結果
    (1)當請求完成的時候再進行處理,即readyState == 4
    (2)通過響應碼判斷只有請求成功的時候才進行處理,即響應碼>=200,<300或者是=304(緩存)
    (3)拿到服務器返回的響應體:response.Text
    
    
    創建請求對象的兼容性處理:
    if(window.XMLHTTPRequest)
    {
        var request = new XMLHTTPRequest();
    }else
    {
        var request = new ActiveXObject("Microsoft","XMLHTTP");
    }
緩存處理
  • 在IE瀏覽器中(7),如果發送的是GET請求,那么只要URL沒有發生變化,那么IE瀏覽器就會認為網頁的內容也沒有發生變化,因此會優先使用緩存數據,所以如果在IE瀏覽器中想讓數據實時更新(獲取到最新的數據),那么可以讓每次請求的URL都不一樣(即每次請求的URL地址不一樣)。

  • 在開發中可以使用隨機數因子或者是時間戳來添加一個額外的參數給url路徑。

    • 獲取時間戳:var date = new Date();date.valueOf()
    • 獲取隨機數因子 Math.radom()
  • 說明

    • 為url添加隨機數或者是時間戳的目的: 讓每次請求的時候url的內容都不一樣
    • 參數變化唯一的作用: 讓每次發送網絡請求的時候URL都不相同,以讓服務器總是把最新的數據返回。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容