http協議 協議:是一種規則或者規定 tcp/ip協議:規則了tcp客戶端與tcp伺服器數據的通訊格式 1.知識點是什麼:http協議 2.知識點有什麼:規定瀏覽器與伺服器(tcp伺服器)之間的數據通訊格式 3.請求的協議格式<客戶端(瀏覽器)發數據給伺服器> GET /index.html HT ...
http協議
協議:是一種規則或者規定 tcp/ip協議:規則了tcp客戶端與tcp伺服器數據的通訊格式1.知識點是什麼:http協議 2.知識點有什麼:規定瀏覽器與伺服器(tcp伺服器)之間的數據通訊格式 3.請求的協議格式<客戶端(瀏覽器)發數據給伺服器> GET /index.html HTTP/1.1 GET:請求的方式 /index.html:地址 HTTP/1.1:協議版本 4.響應<伺服器發數據給客戶端>
【tcp-伺服器接收客戶端請求之後發送數據】
#響應的格式 #1.響應頭 #2.空行 #3.響應體 # 1.響應頭 "HTTP1.1P 版本", 200 ok:這個是狀態 header = "HTTP/1.1 200 OK \r\n" #200這個是狀態 header += "Content-type:text/html;charset=utf-8 \r\n" #解析中文 header += "Content-Length: 5\r\n" #告訴瀏覽器顯示多少個字元 # 2.響應體 body = "python10可" content = header + "\r\n" + body # 返回數據顯示在網頁上面 client.send(content.encode("utf-8")) 註:如果存在返回圖片數據,則需要返回兩次,先返迴文字編碼,再返回二進位圖片數據
http中的瀏覽器跟伺服器
1.他們使用tcp套接字實現的
http流程
響應頭格式
HTTP/1.1 狀態 \r\n
響應的格式
響應頭 http/1.1 200 ok \r\n
content-type:text/html;charset = utf-8;\r\n #顯示中文
Content-Length: 10749顯示內容的長度
空行 \r\n
響應體(返回數據的內容)
請求頭的作用
告訴伺服器我們請求地址
#根據不同的地址返回不同的網頁內容 #拿到第一行 heads = data.splitlines() #GET / HTTP/1.1:響應頭原格式 heads_01 = heads[0] #得到地址 match = re.match(r'[^/]+(/[^ ]*)', heads_01) #用正則的group得到地址 file_name = match.group(1)
響應的作用
控制瀏覽器的顯示
狀態
200 ok 成功了
404 not found 頁面不存在
302 found 跳轉
304 沒有許可權
500 伺服器掛了