cookie和session、web服务工作原理、Apache配置php扩展、php简介
cookie和session:
cookie和session區別:cookie數據是存在本地的,而session數據是存在服務端的,session比cookie更安全。
cookie:用于http做會話時記住客戶端所做的事,這里可以解決首次登陸頁面廣告等問題。 服務端與客戶端在做開發的時候是無狀態:意思是服務端與客戶端交互后兩個互不認識。其使用如:
//在php中設置cookie和session: //1.設置響應頭中的Set-Cookie可以發標識給客戶端,header('Set-Cookie: 鍵=值'),設置相同的鍵時會覆蓋,例如:header('Set-Cookie: notice = password');header('Set-Cookie: notice1 = password1');//2.在php中有專門設置cookie的函數,可傳入多個參數:第三個參數是過期時間戳,不傳第三個參數默認是會話級別session(關閉瀏覽器就會自動刪除)。setcookie('鍵');--------只傳一個參數是刪除setcookie('key','value',time()+1*24*60*60);-------這里的時間不能是當前時間,因為時間一直是在更新,所以時間要給長一點,否則cookie立刻會被刪除。第四個參數path是設置作用路徑范圍:setcookie('key','value',time()+1*24*60*60,'/demo');-----www.happy.com/images/1.jpg www.happy.com/demo/index.html,表示在這樣的域名下,訪問/demo下的地址有cookie,訪問/demo上一級及同級別路徑沒有cookie。第五個參數domain設置cookie的作用域名范圍:------如果設置domain為:day-01.io,day-01.io那么在www.day-01.io這個域名下是可以訪問,在www.day-02.io這個域名下是不可以被訪問。setcookie('key','value',time()+1*24*60*60,'/demo','day-01.io');第六個參數secure是設置只有https才可以使用,值為布爾值:setcookie('key','value',time()+1*24*60*60,'/demo','day-01.io',false);第七個參數httponly是設置只有服務端才可以操作cookie,JS不可以操作cookie 值為布爾值:setcookie('key','value',time()+1*24*60*60,'/demo','day-01.io',false true);3.在php中取cookie:$_COOKIE,得到的是一個關聯數據var_dump($_COOKIE);4.JavaScript操作cookie:獲取:document.cookie設置:document.coolie='js=fuck',不是覆蓋性復制,這里是增量設置。JS操作cookie這里有專門的擴展插件將js-cookie:https://github.com/js-cookie5.cookie有安全隱患,這里一般使用session['key']='value';在php中操作session有性能損耗,所以需要開啟session:配置文件開啟或者代碼開啟:session_start();設置session:$_SESSION['key']='value';獲取session:$_SESSION;//關閉廣告原理:在設置和獲取session或cookie完成的情況下,利用判斷某session或cookie的值是否存在來控制頁面某部分顯示或隱藏,如://廣告頁面:<?php if(empty($_COOKIE['hide_adv'])||$_COOKIE['hide_adv']!=='1'): ?><div class='adv'><a href="index.php?action=close_adv" class='aa'>不再顯示</a></div><?php endif ?>//關閉廣告處理:<?phpif(isset($_GET['action'])&&$_GET['action']==='close_adv'){setcookie('hide_adv','1');$_COOKIE['hide_adv']==='1';};?>動態網頁的產生:
至此,我們可以把靜態網頁放到服務器上,客戶端通過域名請求這個網站,但是對于我們來說,Apache完成的事情過于簡單,無外乎就是請求對應的文件—讀取文件----將文件內容響應給客戶端瀏覽器(文件原封不動的給用戶,無法滿足讓網頁的內容動起來,隨著數據的動態變化的需求)。于是有人提出了 服務端動態網頁的概念 ,能夠實現這種概念的技術有好多種: JSP ASP.NET PHP Node等等。這些技術的原理就是,不在將html固定寫死,每次用戶請求時,動態執行一次代碼,臨時生成一個客戶端想要的HTML頁面。
web服務器工作流程:
1.根據請求的URL對應的文件類型判斷是否為靜態文件
2.如果請求的是一個靜態文件,直接讀取這個文件的內容,將文件內容返回給客戶端
3.如果請求的不是一個靜態文件,讀取文件代碼,執行這段代碼(交給其他程序執行,如php),將執行結果得到的字符串返回給客戶端。
給Apache配置php擴展:
由于Apache不能處理動態網頁,因此需要借助php來完成動態網頁的開發,那么怎么將php和Apache聯系到一起呢?具體流程如下:
1.首先需要在Apache的配置文件httpd.conf文件中自定義寫入php在Apache中的模塊配置指令:loadModule 自定義名字_module C:/php安裝的路徑/php7apache2_4.dall,如:LoadModule php7_module C:/F/php/php7apache2_4.dll2.繼續在Apache中添加此指令:AddType application/x-httpd-php .php 來指定php的媒體類型,這個模塊不是根據后綴判斷是否該php工作,而是根據MIME Type判斷是否為php工作3.配置好上面Apache配置文件后,到php官方網站:https://www.php.net/downloads下載php壓縮包后,將php壓縮包解壓到某個目錄即可,注意和上面httpd.conf配置中路徑保持一致;注意:某些服務端是支持php的,無需下載php安裝包,直接使用即可。提示:對于初學者或不想配置環境的開發者,可以使用集成環境傻瓜式安裝即可,其詳情閱讀官方文檔。Apache與php:
對于很多初學者來說,很容易把Apache和php混在一起,其實他們兩者各自有自己的負責領域,各自的職責,但是我們在使用php做動態網頁時兩者都會發生關系:
客戶端請求—Apache判斷是否為靜態網頁,若是,自己處理,讀取文件,將結果響應給客戶端;否則交給php讀取php文件中的代碼并執行代碼,將執行的代碼返回給Apache,Apache執行后呈現給客戶端。
php介紹:
經過上面簡單的介紹,對php有了初步的認識,如果想要學好php,那么還得繼續參考官方文檔學習相關API,詳細參考文檔:http://php.net/manual/zh/index.php
php的價值:通過執行php代碼獲取某些指定的數據,填充到html的指定的位置
php(PHP:Hyper Preprocessor)是一種廣泛應用的腳本語言,他可以被嵌入到html中,尤其適合做動態網站開發,php中的特點和其他腳本語音類似,都有:變量,函數,循環,等等。語法不同,但是在概念上是基本一致的。我們使用php的主要作用就是能寫出動態網頁,動態的核心就是讓HTML不再寫死,而是通過在html中嵌入一段可以在服務端執行的代碼,從而達到動態的目的。
php中常用于測試結果的輸出指令:echo可以打印多個參數、print只能打印一個參數、var_dump()輸出數據類型及數據;
提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的cookie和session、web服务工作原理、Apache配置php扩展、php简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复制密钥文件到另一台服务器,使用所有ss
- 下一篇: tablednd保存 php,JQuer