1. 程式人生 > >HTTP 協議基本知識

HTTP 協議基本知識

win options charset referer 之間 接受 type 基於 http響應

HTTP協議
7.1.什麽是HTTP協議:
HTTP協議是用來規定瀏覽器客戶端和服務器通信的方式

7.2.基本原則
基於請求響應模型
一次請求對應一次響應
請求只能由客戶端發出, 服務器只能被動的等待請求, 做出回應

7.3.http協議詳解
7.3.1.Http請求
請求行
GET /news3/1.html HTTP/1.1

GET:
提交方式, 一共有7種(GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE),其中5種不常用, 只用GET和POST提交

/news3/1.html:
請求資源的路徑

HTTP/1.1:
1.0和1.1: 1.0版本的協議在每次通信結束後會立即斷開客戶端和服務器之間的連接(通道), 如果需要再次發送請求, 只能再建立新的連接
1.1版本的協議在每次通信結束後會將連接保持一段時間, 如果在這段時間內需要發送請求, 可以復用該連接.

若幹請求頭
Accept: text/html,image/*
-- 通知服務器當前瀏覽器可以接受那些格式的數據
Accept-Charset: ISO-8859-1
-- 瀏覽器可以接受的字符集編碼
Accept-Encoding: gzip,compress
-- 瀏覽器可以接受的壓縮格式
Accept-Language: en-us,zh-cn
-- 瀏覽器接受的語言環境,和國際化相關的頭
Host: www.tedu.cn:80
-- 需要訪問的虛擬主機的名稱
!!Referer:
http://www.tedu.cn/index.jsp
-- 這是和防盜鏈相關的頭,對當前資源的訪問來自哪個頁面的超鏈接
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
-- 客戶端的基本信息
!!Cookie
-- 和cookie相關的頭
Connection: close/Keep-Alive
-- 是否繼續保持連接
Date: Fri, 17 Feb 2017 18:23:51 GMT
-- 當前發送請求的時間

(一個空行)
請求實體內容
xxxxxx

7.3.2.Http響應
一個狀態行
HTTP/1.1 200 OK
HTTP/1.1: Http協議的版本
200: 狀態碼, 一個三位的數字(100~600) 表示服務器對請求處理的結果

常用的狀態碼:
200: 表示服務器成功的處理請求
302: 表示請求重定向
304: 表示通知瀏覽器使用緩存
307: 表示通知瀏覽器使用緩存
404: 表示資源找不到
500: 服務器內部出現錯誤!

OK: 描述信息

若幹響應頭:
!!Location: http://www.tedu.cn/index.jsp
-- 配合302使用實現請求重定向
Server:apache tomcat
-- 服務器的基本信息
Content-Encoding: gzip
-- 服務器發送的數據使用的壓縮格式
Content-Length: 80
-- 服務器發送的數據的大小
Content-Language: zh-cn
--服務器發送的數據使用的語言環境 國際化相關的頭
!!!Content-Type: text/html; charset=GB2312
-- 服務器發送的數據是什麽格式的,如果是字符格式的數據,則還可以通知服務器發送的數據使用的是什麽編碼,瀏覽器會根據這個頭指定的編碼決定使用哪個編碼來打開收到的數據

!!Refresh: 1;url=http://www.tedu.cn
-- 定時刷新相關的頭,通知瀏覽器,過幾秒後自動刷新訪問哪個地址
Content-Disposition: attachment;filename=aaa.zip
-- 通知瀏覽器以附件的形式打開發送過去的數據,是和文件下載相關的頭

!!!Set-Cookie:SS=Q0=5Lb_nQ; path=/search
-- 和Cookie相關的頭
!Expires: -1
-- 通知瀏覽器是否緩存
!Cache-Control: no-cache
-- 通知瀏覽器是否緩存
Pragma: no-cache
-- 通知瀏覽器是否緩存
--之所以一個功能有三個頭,是因為歷史原因.所以為了網頁的兼容性考慮,通常這三個頭要一起使用

Connection: close/Keep-Alive
-- 是否保持連接
Date: Fri, 17 Feb 2017 18:24:11 GMT
-- 響應時的時間
(一個空行)
響應實體內容
xxxxxx

HTTP 協議基本知識