http協議

    http協議簡介  html

http協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,適用於萬維網(WWW:World Wide Web)吳福氣與本地瀏覽器之間傳輸超文本的傳送協議.web

 

http是一個屬於應用層的面向對象的協議,因爲其簡捷,快速的方式,適用於分佈式超媒體信息系統,它於1990年提出,通過幾年的使用與發展獲得不斷第晚上和擴展.http協議工做於客戶端-服務器架構智商,瀏覽器做爲http客戶端通多url想http服務端即web服務器發送全部請求.web服務器根據接收到的請求後,想哭護短髮送相應信息.瀏覽器

 

    http特性    服務器

(1),基於tcp/ipcookie

http協議是基於tcp/ip協議之上的應用層協議架構

(2),基於請求-響應模式less

htto協議規定,請求從客戶端發出,最後服務器端相應該請求並返回.換句話說確定是先從客戶端開始創建通訊的,服務器端在沒有接收到請求以前不會發送響應socket

 

(3),無狀態保存tcp

http是一種不保存狀態,即無狀態(stateless)協議.htto協議自身不對請求和響應之間的通訊狀態進行保存.也就是說在http這個級別,協議對於發送過得請求或相應都不作持久化處理.分佈式

使用http協議,每當有心的請求發送時,就會有對應的響應產生.協議本省並不保留以前一切的請求或者響應報文的信息.這是爲了更快第處理大量事物,確保協議的可伸縮性,而特地把http協議設計成如此簡單的.能夠,隨着web的不斷髮展因無狀態而致使業務處理變得棘手的狀況增多了.好比,用戶登陸到一家購物網站,及時他跳轉到該站的其餘頁面後,也須要能繼續保持登錄狀態.針對這個實力,網站爲了可以掌握是誰送出的請求,須要保存用戶的狀態.http/1.1雖然是無狀態協議,但爲了實現指望的保持狀態功能,因而映入了cookie計數.有了cookie再用http協議通訊,就能夠了管理狀態了.有關cookie詳細內容咱們後面再講解

   (4) 無鏈接   

無鏈接的含義是限制每次鏈接只處理一個請求.服務器處理完客戶的請求,並受到客戶的應答後,即斷開鏈接.採用這種方式能夠節省傳輸時間.

 

    http請求協議與相應協議     

 

http協議包含遊瀏覽器發送數據到服務器須要遵照的請求協議與服務器非訴訟數據到瀏覽器須要遵照的請求協議.用於http協議交互的行爲http報文.請求端(客戶端)的http報文作請求報文,響應端(服務端)的作相應報文.http報文自己是又多行數據構成的自文本.

 

請求協議

請求格式

 

 

 

請求方式:get與post請求

  • get提交的數據會放在urt以後,以?分割url和傳輸數據,參數之間以&項鍊,如http://www.baidu.com?name=huhushengwei&password=349900.post方法是吧提交的數據放在http包的請求體中.
  • get提交的數據大小有限制(由於瀏覽器對url的長度有限制),而post方法提交的數據沒有限制,

 

  • get與post請求在服務器獲取的請求數據方式不一樣

 

   相應協議  

相應格式

相應狀態碼

狀態碼的職責是當客戶端向服務器端發送請求時,返回的請求結果.藉助狀態碼,用戶能夠知道服務器是正常受理了請求,仍是出現了error.

import socket


sock=socket.socket()
sock.bind(("127.0.0.1",8808))
sock.listen(5)

while 1:
    print("server waiting.....")
    conn,addr=sock.accept()
    data=conn.recv(1024)
    print("data",data)

    # 讀取html文件
    with open("login.html","rb") as f:
        data=f.read()

    conn.send((b"HTTP/1.1 200 OK\r\n\r\n%s"%data))
    conn.close()

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>



<form action="" method="post">
    用戶名 <input type="text" name="user">
    密碼 <input type="password" name="pwd">
    <input type="submit">
</form>

</body>
</html>
相關文章
相關標籤/搜索