淺說http

看到防盜鏈就得思考一下http,所以現在說點http基礎(個人理解)

一、淺談http協議:

1、http協議是基於tcp/ip協議,tcp協議大概共有7層,應用層,傳輸層,表示層,會話層,數據鏈路層,物理層,網絡層,但實際綜合只有四層數據段、數據包、數據幀、比特流,如下圖:


2、HTTP是Hyper Text Transfer Protocol(超文本傳輸協議)大概瞭解它有1.0版本即短連接、1.1版本即長連接(今天普遍使用長連接)

3、HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。HTTP是一個無狀態的協議

4、HTTP協議通常承載於TCP協議之上,有時也承載於TLS或SSL協議層之上,這個時候,就成了我們常說的HTTPS。默認HTTP的端口號爲80,HTTPS的端口號爲443。

二、簡單知識:

(一、)請求服務器的部分
host:主機名
user-agent:瀏覽器的信息,可以看出其內核,操作版本
accept :瀏覽器把支持的數據格式 html/xml/application
accept_languange:瀏覽器所支持的語言
accept-enconding:瀏覽器所支持的壓縮格式
connection:保持連接
conten-type:客戶端向服務器所發送的數據類型
content-length:客戶端向服務器所發送的數據的長度,(這裏需要是post的纔有,因爲get方式會將數據以名值對的形式寫的地址欄上

cookie:客戶端向服務器發送的cookie(數據)
referrer: 當網頁是由哪個頁面跳轉而來的
if-modified-since:訪問客戶端此次請求的文件,服務器有沒有修改過
二、響應服務器的部分
響應頭
響應的報頭
空行
數據
響應頭包含的協議與版號狀態碼(status) 狀態碼的描述
常用的狀態碼:200(成功),404(請求的文件不存在) 403(請求有權限)、304(取緩存頁面)

響應的報頭:
date:處理的時間
server:服務器的信息
last-modified:請的文件的最後修改時間
content-length:服務器響應的數據長度
content-type:服務器響應的數據的類型
空行
響應的數據

三、php模擬http響應
設置編碼:
header("Content-tyep:text/html;charset=utf-8");
重定向
header("loaction:跳轉的url");
header("refreshe:時間,url='路徑'");

①修改http內容,告訴瀏覽器,實現文件下載
<?php
header("content-type:application/octet-stream");
header("content-disposition:attachement;filename=文件名");
echo file_get_contents("真實文件名");

?>


②通過header來禁用緩存

header("Expires:-1");

header("Cache-control:no-cache");

header("Progrma:no-cache");


---------後續再補上,防盜鏈案例!!!!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章