1-wampserver安裝/使用 get與post請求/區(qū)別 表單發(fā)送請求 ajax

wampserver的安裝和使用

  • 簡介

      W: Windows操作系統(tǒng)
      A: Apache 世界排名第一的服務(wù)器軟件,特點(diǎn)是簡單,速度快,性能穩(wěn)定
      M: MySQL 開源免費(fèi)的數(shù)據(jù)庫軟件,特點(diǎn)是體積小、速度快、使用成本低
      P: PHP 超文本預(yù)處理器,直接將代碼嵌入HTML文檔中執(zhí)行, 特點(diǎn)是簡單易學(xué),容易上手
    
  • 安裝

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

    • 測試訪問

         打開瀏覽器輸入127.0.0.1查看顯示的內(nèi)容
      
    • 修改默認(rèn)的網(wǎng)站內(nèi)容

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

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

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

get請求和post請求

  • get請求
    • get請求提交的數(shù)據(jù)可以在地址欄中看到
    • get請求的數(shù)據(jù)在PHP中可以通過$_GET["key"]的形式獲取
    • 如果$_GET中沒有key對(duì)應(yīng)的值會(huì)報(bào)錯(cuò)
  • post請求
    • post請求提交的數(shù)據(jù)不會(huì)在地址欄中顯示
    • post請求提交的數(shù)據(jù)在PHP中可以通過$_POST["key"]的形式獲取
    • 如果$_POST中沒有key對(duì)應(yīng)的值會(huì)報(bào)錯(cuò)
  • 注意
    • get發(fā)送的請求數(shù)據(jù)不能通過$_POST獲取

get/post區(qū)別

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

      • 因?yàn)?特定的瀏覽器及服務(wù)器對(duì)請求的URL長度有限制",而get請求的參數(shù)又全部拼接在URL后面處理。
      • 所以在使用get方法網(wǎng)絡(luò)請求的時(shí)候,對(duì)參數(shù)的大小有限制。
    • post請求

      • 因?yàn)镻OST不是通過URL提交數(shù)據(jù),所以POST是沒有大小限制。
      • HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制,起限制作用的是服務(wù)器的處理程序的處理能力。
  • 請求體
    • get請求所有的參數(shù)都拼接在請求路徑后面,所以沒有請求體
    • post請求把參數(shù)全部都放在請求體中傳遞。

表單發(fā)送請求

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

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

          <form action="01-get-php.php">
              <input type="text" placeholder="請傳入用戶名" name="userName">
              <input type="text" placeholder="請傳入密碼" name="password">
              <input type="submit">
          </form> 
    
發(fā)送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>
          //服務(wù)器端具體處理
          echo $_POST["userName"]
          echo $_POST["password"]
    
  • $_GET獲取get請求提交的數(shù)據(jù) $_POST獲取post請求提交的數(shù)據(jù) $_FILES獲取post請求提交的文件

表單進(jìn)行文件上傳
  • 說明

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

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

Ajax

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

  • 在開發(fā)中可以使用隨機(jī)數(shù)因子或者是時(shí)間戳來添加一個(gè)額外的參數(shù)給url路徑。

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

    • 為url添加隨機(jī)數(shù)或者是時(shí)間戳的目的: 讓每次請求的時(shí)候url的內(nèi)容都不一樣
    • 參數(shù)變化唯一的作用: 讓每次發(fā)送網(wǎng)絡(luò)請求的時(shí)候URL都不相同,以讓服務(wù)器總是把最新的數(shù)據(jù)返回。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容