_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字節)