http協議 以及 php 經常使用配置

一、配置虛擬主機(以win下的apach爲例)php

a、首先在C盤下找到C:/windows/system32/drivers/ect/hosts下進行配置域名html

b、配置apach服務器(正式的配置虛擬主機文件httpd-vhosts.conf)web

在 AllowOverride 設置爲 None 時, .htaccess 文件將被徹底忽略。當此指令設置爲 All 時,全部具備 ".htaccess" 做用域的指令都容許出如今 .htaccess 文件中。ajax

二、HTTP請求json

瀏覽器連上服務器後,向服務器請求某個web資源,稱之爲瀏覽器向服務器發送了一個http請求。一個完整的http請求包括以下內容:windows

 一個請求行,若干消息請求頭,實體內容瀏覽器

消息頭和實體內容都是可選的安全

 A、http 請求行服務器

請求行分紅三個部份,分別由請求方式,請求的資源,HTTP的版本組成cookie

http的請求方式分別有:POST ,GET, HEAD,OPTIONS,DELETE,TRACE,PUT

get 與 post的區別以下:

a、前都在表單請求的時候,數據會放在地址欄裏,而post會放在內容實體裏面,因此就表單傳輸來說,post方式相對安全

b、get傳輸數據的大小取決於瀏覽器與操做系統,post數據理論上是沒有限制大小的

c、上傳和下載文件一個通常不超過2M,若是大於2M能夠經過專門的插件來作,而且上傳文件通常用Post

d、get 更容易進行收藏,而且表的傳輸默認是get請求,若是數據量比較小,通常用get

e、若是是經過超鏈的方式,那麼必需用get請求

 B、http 請求頭

 

$_SERVER能夠獲取到服務項的全部內容,若是想獲取訪問電腦的IP地址,能夠用$_SERVER['REMOTE_ADDR']來獲取

如下案例是不容許指定Ip訪問網站:

<?php
header('content-type:text/html;charset=utf8');
ini_set('display_errors', true);
$remote_addr = $_SERVER['REMOTE_ADDR'];
if ($remote_addr = '' || strpos($remote_addr, '192.168') === 0) {
    echo '對不起,這個地址是拒絕訪問的';
} else {
    echo '有權限訪問';
}
?>

 防止網頁盜鏈

<?php
header('content-type:text/html;charset=utf8');
ini_set('display_errors', true);
$referer = $_SERVER['HTTP_REFERER'] || '';
if ($referer != '' && strpos($referer, 'http://www.baidu.com') === 0) {
    echo '這個是正規途徑';
}else{
    echo '不能訪問';
}
?>

 C、HTTP請求的狀態碼

經常使用的狀態碼 : 200 =》成功,302 =》重定項,304 =》資源未修改,服務器說明本地的資源已經是最新的了,403 =》禁止訪問,即沒有訪問的權限,404 =》沒有訪問的資源 ,500 =》服務器錯誤。

 D、HTTP請求頭的設置

 header('Location:abc.html')  => 告訴瀏覽器進行重定向到abc.html頁面,會返回302碼

 header('Refresh:5;url=abc.html') =>告訴瀏覽器5秒後跳轉到abc.html頁面

<?php
header('content-type:text/html;charset=utf8');
header('Location:index.php');
header('Refresh:5;url = index.php');
?>

header('Content-type:application/json') => 以json形式的數據輸出,一般用做ajax請求

header('Access-Control-Allow-Origin:*'); // *表明容許任何網址請求

header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); // 容許請求的類型

header('Access-Control-Allow-Credentials: true'); // 設置是否容許發送 cookies

header('Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin'); // 設置容許自定義請求頭的字段,如身份驗證信息

經常使用的下載配置

//告訴瀏覽器我向你迴應的內容是文件請保存
//返回的文件
header("Content-type: application/octet-stream");
//按照字節大小返回
header("Accept-Ranges: bytes");
//顯示文件大小
header("Content-Length: {$filesize}");
//這裏客戶端的彈出對話框,對應的文件名
header("Content-Disposition: attachment; filename={$filename}");

 三、經常使用的php_ini配置

<?php
header('content-type:text/html;charset=utf-8');
//是否打印錯誤
ini_set('display_errors', true);
//最大上傳文件的大小
var_dump(ini_get('upload_max_filesize'));
//post最大的文件大小
var_dump(ini_get('post_max_size'));
//一次性上傳的最大數量
var_dump(ini_get('max_file_uploads'));
//時區設置
var_dump(ini_get('date.timezone'));
?>
相關文章
相關標籤/搜索