HTTP協議知識點

Http協議
_1獲取資源telnet(telnet ip/網址 port)輸入命令如顯示“ctrl+]”
注意:在給界面輸入信息時不能出錯,輸入一個字符就會傳送到服務器端, 在客戶端進行修改雖然顯示是正確的,但是傳到服務器
後是錯誤的
_2在http1.0協議中,客戶端與web服務器建立連接後,只能獲得一個web資源,1.1中在一個連接上獲取多個web資源
注意web頁面的優化,如img標籤引用了三幅圖片,每次加載一張圖就會請求一次服務器,可以儘量減少圖片的數量,即減少了請求數
_3Http請求:一個請求行,若干請求頭,一個空行以及實體內容
__1請求行中GET稱之爲請求方式,常用的有GET、POST兩種,get爲默認,post方式可以通過表單action屬性來設置,get和post都是在請求某個web資源,區別主要在數據傳遞上
__2請求頭:
	Accept(告訴服務器客戶機支持的數據類型)、
	Accept-Charset(用於告訴服務器,客戶機採用的編碼)、
	Accept-Encoding(用於告訴服務器,客戶機支持的數據壓縮格式)、
	Accept-Language(客戶機的語言環境)、
	Host(客戶機通過這個告訴服務器,想訪問的主機名)、
	If-Modified-since(告訴服務器,資源的緩存時間點,當再次請求相同資源時,若請求時間點之後並未更新,就使用緩存)、
	Referer(客戶機通多這個頭告訴服務器,它是從哪個資源來訪問服務器的(可以應用在防盜鏈上))、
	User-Agent(客戶機通過這個頭告訴服務器,客戶機的軟件環境(瀏覽器,操作系統等))、
	Cookie(客戶機通過這個頭向服務器帶帶過去一點數據)
	Connection(請求結束後是保持連接還是關閉連接)、
	date等
_4Http響應:一個狀態行,若干消息頭,一個空格,以及實體內容
__1狀態行:Http請求,狀態碼(詳細見文檔),原因敘述,如HTTP/1.1 200 OK
__2響應頭:
	Location:這個頭配合302狀態碼使用,用於告訴客戶找誰
		重定向:response.setStatus(302);response.setHeader("Location","path");
	Server:服務器通過這個頭,告訴瀏覽器服務器的類型
	Content-Encoding:告訴瀏覽器數據的壓縮格式
	Content-Length:告訴瀏覽器回送數據的長度
	Content-Type:告訴瀏覽器回送數據的類型(否則瀏覽器不知道如何才能進行對接收到的信息進行顯示)
	Last-Modified:告訴瀏覽器當前資源緩存時間
	Refresh:告訴瀏覽器隔多久刷新一次
	Content-Disposition:告訴瀏覽器已下載方式打開數據
		response.setHeader("content-disposition","attachment;filename=1.jpg");
	Transfer-Encoding:告訴瀏覽器數據的傳送格式
	ETag:緩存相關的頭(服務器可以通過它比對內容是否改變)(modified只可以做到秒一級的,這個頭則可以做到實時更新)
	Expires:告訴瀏覽器把回送的資源緩存多長時間,-1或0,則是不緩存
	Cache-Control:no-cache、Pragma:no-cache:這兩個頭,也是控制瀏覽器不要緩存數據
	Range
__3壓縮格式的使用:
		String data = "aaaaaaaa";
		ByteArrayOutputStream bout = new ByteArrayOutputStream();
		GZIPOutputStream gout = new GZIPOutputStream(bout);
		gout.write(data.getBytes());
		gout.close();//一個將gout中的數據全部寫入底層流的方式
		byte gzip[] =bout.toByteArray();//得到壓縮後的數據
		//通知瀏覽器數據採用壓縮格式
		response.setHeader("Content-Encoding","gzip");
		response.setHeader("Content-Length",gzip.length+"");
		response.getOutputStream().write(gzip);
__4Http實用頭字段
Http請求頭字段:
	Range頭指示服務器只傳輸一部分Web資源。
	這個頭可以用來實現斷點續傳的功能,三種格式:
		Range:bytes=1000-2000(傳輸範圍從1000到2000字節)、
		bytes=1000-(第1000字節之後的所有)、
		bytes=1000(傳輸最後1000個字節)
Http響應消息頭字段
	Accept-Ranges:這個字段說明Web服務器是否支持Range支持,支持返回Accept-Ranges:bytes否則none
	Content-Range:指定了返回資源的字節範圍,如:Content-Range:1000-3000/5000(返回1000-3000個字節,共5000字節)


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