通常,Web服務器一直使用指定端口(默認為80端口)監聽客戶端的請求。請求由客戶端發起,創建一個到服務器指定端口的TCP連接。一旦收到請求,服務器會向客戶端返回一個狀態,比如“HTTP/1.1 200 OK”,以及返回的內容,如請求的文件、錯誤消息、或者其他信息,這就是服務器端的響應。
一、常見的請求頭
1、 GET或POST:請求類型,后接請求資源、協議和版本
2、 Host:主機和端口
3、 Connection:是否使用持續連接
4、 User-Agent:客戶端瀏覽器的名稱
5、 Accept:瀏覽器可接受的MIME類型
6、 Accept-Encoding:瀏覽器知道如何解碼的數據編碼類型
7、 Accept-Language:瀏覽器指定的語言
8、 Accept-Charset:瀏覽器支持的字符編碼
9、 Cookie:保存的Cookie對象
二、響應狀態
響應信息的第一行就是響應狀態,內容依次是當前HTTP版本號,三位數字組成的狀態代碼,以及描述狀態的短語,彼此由空格分隔。狀態代碼的第一個數字代表當前響應的類型,xx表示兩位數字。
a、 1xx消息:請求已被服務器接收,繼續處理
b、 2xx成功:請求已成功被服務器接收、理解、並接受
c、 3xx重定向:需要后續操作才能完成這一請求
d、 4xx請求錯誤:請求含有詞法錯誤或者無法被執行
e、 5xx服務器錯誤:服務器在處理某個正確請求時發生錯誤
三、響應頭
響應頭用於指示客戶端如何處理響應體,告訴瀏覽器響應的類型、字符編碼和字節大小等信息。
1、 Allow:服務器支持哪些請求方法(如GET、POST等)
2、 Content-Encoding:文檔的編碼(Encode)類型。只有在解碼之后才可以得到Content-Type頭指定的內容類型
3、 Content-Length:內容長度。只有當瀏覽器使用持久HTTP連接時才需要這個數據
4、 Content-Type:表示后面的文檔屬於什么MIME類型
5、 Date:當前的時間
6、 Expires:文檔過期時間
7、 Refresh:表示瀏覽器應該在多少時間之后刷新文檔,以秒計
8、 Server:服務器名稱
9、 Set-Cookie:設置與頁面關聯的Cookie
10、 WWW-Authenticate:客戶應該在Authorization頭中提供的授權信息類型
四、響應體
響應頭之后緊跟着一個空行,然后接響應體。響應體就是Web服務器發送到客戶端的實際內容。除網頁外,響應體還可以是諸如Word、Excel或PDF等其他類型的文檔,具體是哪種文檔類型由Content-Type指定的MIME類型決定。