乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      從零開始之ecshop基礎(chǔ)篇下(24)

       昵稱10504424 2013-12-24

      協(xié)議:指的是一種約定,語法約束。用于限制數(shù)據(jù)在交互時(shí)的數(shù)據(jù)格式。

      HTTP協(xié)議,用于b/s架構(gòu)中,瀏覽器與服務(wù)器之間數(shù)據(jù)傳輸?shù)囊?guī)則。

      HTTP協(xié)議,是一個(gè)應(yīng)用層的協(xié)議,只負(fù)責(zé)程序間的數(shù)據(jù)交互格式,而不用負(fù)責(zé)程序的連接。

      HTTP:超文本傳輸協(xié)議

      一共兩次數(shù)據(jù)交互;

      瀏覽器(發(fā)出請求的程序)應(yīng)該向http服務(wù)器發(fā)送什么格式的數(shù)據(jù)。

      由三個(gè)子部分組成:請求行,請求頭,請求主體

      現(xiàn)行的GET請求格式如下:GET /index.php?name=itcast HTTP/1.1

      請求方式 地址URL 協(xié)議版本

      瀏覽器(請求發(fā)送端)發(fā)送給服務(wù)器端的需要服務(wù)器知道的信息。

      例如:user-agent:用戶代理信息,用于告知服務(wù)器,請求時(shí)誰發(fā)出的。

      在服務(wù)器端,可以利用$_SERVER變量,獲得該信息:

      host:主機(jī),請求需要的域名。

      cookie:瀏覽器上的cookie數(shù)據(jù)

      Accept-Language:瀏覽器可以接收的語言,通常用來判斷瀏覽器語言,做多語言程序:

      格式:

      頭標(biāo)識:值

      Host:shop.

      User-Agent:Firefox

      注意:每個(gè)頭占用一行。

      采用回車+換行來表示:

      使用一個(gè)空行表示頭信息結(jié)束

      指的是瀏覽器請求段發(fā)送給服務(wù)器端的數(shù)據(jù)部分。

      只指的是POST請求的數(shù)據(jù)。只有post請求才需要請求主體,而get沒有請求主體,因?yàn)閿?shù)據(jù)是在請求行中url部分傳遞過去的。

      常規(guī)是瀏覽器發(fā)出請求。留啊兩年期可以連接上目標(biāo)服務(wù)器,并可以向目標(biāo)服務(wù)器發(fā)送符合http請求協(xié)議格式的數(shù)據(jù),此時(shí)http服務(wù)器,就知道瀏覽器發(fā)送了請求,做出響應(yīng)。

      如果模擬請求,模擬瀏覽器做出的工作:連接上目標(biāo)服務(wù)器,發(fā)送請求數(shù)據(jù)。

      PHP模擬請求:

      地址,端口。

      利用 fsockopen 可以完成建立連接:成功后,生成鏈接資源。

      利用連接,目標(biāo)服務(wù)器寫數(shù)據(jù)。

      服務(wù)器處理,做出響應(yīng)。

      利用連接,從目標(biāo)服務(wù)器讀取數(shù)據(jù)的過程。

      HTTP服務(wù)器(apache)應(yīng)該向?yàn)g覽器(請求來源)發(fā)送什么格式的數(shù)據(jù)。

      分成三部分:響應(yīng)狀態(tài)行,響應(yīng)頭,響應(yīng)主體

      表示具體的響應(yīng)結(jié)果

      HTTP/1.1 200 OK

      協(xié)議版本 狀態(tài)碼 狀態(tài)消息

      常見的狀態(tài)碼:

      200 OK 成功

      404 notFound 沒有找到腳本

      403 Forbidden 沒有權(quán)限

      302 Found 重定向

      500 服務(wù)器錯(cuò)誤

      完整的查看:

      1xx: 信息

      2xx: 成功

      3xx: 重定向

      4xx: 客戶端錯(cuò)誤

      5xx:服務(wù)器錯(cuò)誤

      服務(wù)器告知瀏覽器的信息部分

      date: 響應(yīng)時(shí)間

      GMT時(shí)間,格林威治平時(shí)

      Content-Type: 主體的類型

      Content-Length: 主體的長度

      注意: 每個(gè)信息占用一行,行以\r\n結(jié)束,頭結(jié)束有個(gè)空行

      服務(wù)器發(fā)送給請求代理端的主體數(shù)據(jù)部分

      發(fā)送響應(yīng)頭或者響應(yīng)主體。

      發(fā)送響應(yīng)頭或者響應(yīng)主體。

      header()函數(shù)用于發(fā)送響應(yīng)頭

      任何輸出都算響應(yīng)主體。

      echo

      var_dump()

      php 標(biāo)簽外的html代碼

      都算響應(yīng)主體。

      例如,模擬cookie:

      header 還可以發(fā)送響應(yīng)行:

      文件由服務(wù)器到瀏覽器,發(fā)生在響應(yīng)時(shí)。

      告知瀏覽器,響應(yīng)的主體數(shù)據(jù),作為附件來處理。不要打開,保存。

      利用響應(yīng)頭:Content-Disposition:attachment

      主體的處理方式:附件

      下載圖片:將圖片的內(nèi)容作為主體數(shù)據(jù)輸出到瀏覽器端,并告知瀏覽器,將數(shù)據(jù)保存。

      readfile()讀取文件內(nèi)容并輸出。

      告知瀏覽器保存的文件名:Content-Disposition:attachment

      增加一個(gè)filename的選項(xiàng)即可:Content-Disposition:attachment; filename=xxx.xxx

      完善的下載:處理文件格式

      此時(shí),建議使用fileinfo擴(kuò)展,老獲取文件格式:開啟extension=php_fileinfo.dll(php.ini)

      finfo_open();建立一個(gè)獲取文件信息的資源。

      finfo_file();利用資源獲得某個(gè)文件的信息。

      控制瀏覽器端的緩存數(shù)據(jù)。

      利用響應(yīng)頭實(shí)現(xiàn):

      Expires:響應(yīng)頭,表示當(dāng)前響應(yīng)結(jié)果的有效期到什么時(shí)候:

      是一個(gè)GMT時(shí)間。

      date()得到是本地時(shí)間

      gmdate()得到格林威治平時(shí)

      告知響應(yīng)數(shù)據(jù)的有效期:

      禁用瀏覽器緩存,應(yīng)該設(shè)置失效的一個(gè)時(shí)間。

      為了兼容:禁用緩存還可以如下寫:

      利用請求頭重的:referer:當(dāng)前請求的來源,由哪里發(fā)出的請求。

      因此程序中判斷請求來源,決定是否顯示該圖片了:

      與get請求相比,post請求數(shù)據(jù)存在請求主體。

      請求行:POST URL協(xié)議

      請求行頭:增加對請求主體的描述部分:

      Content-Type:

      Content-Length:

      描述的請求的主體的內(nèi)容:

      請求主體:是請求數(shù)據(jù)即可:

      不需要\r\n結(jié)束。

      模擬URL請求的客戶端擴(kuò)展。

      php支持的一個(gè)可以快速模擬請求的功能。

      開啟擴(kuò)展:extension=php_curl.dll(php.ini)

      可能需要將動(dòng)態(tài)庫,拷貝到windows目錄:(libeay32.dll ssleay32.dll)

      curl_init();

      利用函數(shù):

      curl_setopt(curl資源,選項(xiàng)標(biāo)識,選項(xiàng)值);

      利用選項(xiàng) CURLOPT_POST 來設(shè)置是否是post請求

      利用選項(xiàng) CURLOPT_POSTFIELDS 來設(shè)置post 數(shù)據(jù),支持?jǐn)?shù)組形式。

      在 post 數(shù)據(jù)上做操作即可:

      在 post 數(shù)據(jù) 數(shù)組內(nèi),使用絕對地址前增加 @ 符號,表示該數(shù)據(jù)是個(gè)文件數(shù)據(jù)。

      利用正確的用戶名和密碼,獲得登陸標(biāo)識,獲得 cookie 中的 SESSIONID

      請求 signinAction

      http://shop./index.php?p=back&c=Admin&a=signin POST

      需要使用 CURLOPT_COOKIEJAR 選項(xiàng),可以設(shè)置一個(gè)保存服務(wù)器設(shè)置 cookie 的文件。


      再拿著 cookie 中的 sessionID 去請求需要登陸驗(yàn)證腳本,服務(wù)器就認(rèn)為我們認(rèn)證用戶,看頁面。

      選項(xiàng):CURLOPT_COOKIEFILE 請求時(shí),攜帶的 cookie 所保存的文件。

      選項(xiàng),CURL_RETURNTRANSFER

      利用函數(shù)curl_exec(curl資源)

      e:\Server\PHP\php.exe -f e:\Server\Apache\htdocs\129.php

      在實(shí)際使用中,速度最快的排序算法。

      體現(xiàn)的分治原則,分而治之

      將困難的問題,拆分成相對簡單的問題

      解決難度N的問題的效率,要低于解決2個(gè)難度為N/2的問題

      6個(gè)元素,做冒泡排序:5+4+3+2+1 = 15

      2個(gè)3個(gè)元素,冒泡排序:2+1=3*2 = 6

      步驟:

      將分成兩個(gè)部分,拆分的原則,找到參考源,將小于參考元分成一部分,將大于參考元的分層一部分:

      典型的選擇第一個(gè)元素作為參考元:

      再對拆分的兩個(gè)部分分別排序(還是使用該原則),最后將排序的結(jié)果與參考元再組合起來。當(dāng),序列號總,只有一個(gè)或者零個(gè)時(shí),認(rèn)為序列是排序好的,不用在拆分。

      編程實(shí)現(xiàn):

      遞歸點(diǎn):對任何一個(gè)拆分出來的部分排序方式一致,調(diào)用同一個(gè)函數(shù)完成。

      遞歸出口:當(dāng)需要排序的序列內(nèi),只有一個(gè)或者沒有元素時(shí),不需要遞歸,認(rèn)為該序列已經(jīng)排序完畢。

      定義函數(shù):

      參數(shù):

      需要排序的序列:數(shù)組

      采用同一個(gè)較大的數(shù)組

      生成較大的數(shù)組

      利用函數(shù) var_export(); 將數(shù)據(jù)導(dǎo)出字符串,是符合PHP語法的定義數(shù)據(jù)的字符串:

      使用 microtime 函數(shù),獲得當(dāng)前的時(shí)間戳,精確的微秒。

      形成一個(gè)桶:由待排序序列中,最小數(shù),到,最大數(shù)之間所有的數(shù)的一個(gè)桶。先假設(shè)每個(gè)元素都出現(xiàn)0次。

      一個(gè)數(shù)組,鍵表示數(shù),值表示次數(shù)。

      遍歷所有待排序的序列元素,統(tǒng)計(jì)出現(xiàn)次數(shù),并記錄

      遍歷桶,將對應(yīng)數(shù)量的元素得到即可!

      PHPMyAdmin

      一個(gè)web版的操作mysql的工具:默認(rèn)使用mysqli作為數(shù)據(jù)庫操作擴(kuò)展。

      MySQL-Front

      Navicat For MySQL

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多