Web框架与HTTP协议
生活随笔
收集整理的這篇文章主要介紹了
Web框架与HTTP协议
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現多并發的web服務端
import spcketfrom threading import Threadserver=socket.socket() #實例化socket對象 server.bind(('127.0.0.1',10086)) #綁定地址及應用端口號 server.listen() #建立連接def feedback(conn):client_msg=conn.recv(1024) #接收連接請求
print(client_msg) #打印請求內容path=client_msg.split('\r\n')[0].split(' ')[1]
#獲取請求的文件if path=='/':
conn.send(b'HTTP/1.1 200 ok \r\n\r\n')
#響應 協議版本:HTTP/1.1 狀態碼:200 狀態碼的描述 回車符換行符with open('dome.html','rb')as f_html: data=f_html.read()conn.send(data)
#發送請求文件conn.close()if path=='/dome.css':
conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('dome.css','rb')as f_css:data=f_css.read()conn,send(data)conn.close()if path =='/dome.js':
conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('dome.js','rb')as f_js:data=f_js.read()conn.send(data)conn.close()if path=='/background.jpg':
conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('background.jpg','rb')as f_bg:data=f_bg.read()conn.send(data)conn.close()if path=='/favicon.ico':
conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('favicon.ico','rb')as f_ico:data=f_ico.read()conn.send()conn.close()while True:conn,addr=server.accept()
#獲取連接t=Thread(target=fun,args=(conn,))
#設置線程t.start()
#開啟線程
?
HTTP協議
http協議使超文本傳輸協議,位于osi七層的應用層,協議規定的就是請求與響應雙方的一個消息格式,請求(請求行,請求頭,空行 請求數據)
HTTP請求格式
請求方法 空格 URL(即請求文件路徑) 空格 協議版本 回車符 換行符 ?? ps:(請求行)
頭部字段名 冒號 值 回車符 換行符 ? ps:(請求頭部 可能會有多行)
回車符 換行符
請求數據
?
HTTP響應格式
協議版本 空格 狀態碼 空格 狀態碼描述 回車符 換行符 ps:(狀態行)
頭部字段名 冒號 值 回車符 換行符? ps:(響應頭部 可能會多行)
回車符 換行符
響應正文(.htm .css .js等)
?
請求方法:get post put delete patch options connect gead
狀態碼:1xx 待處理
? 2xx 成功
? 3xx 待跳轉
? 4xx 語法錯誤
? ?? 5xx 服務器錯誤
?
轉載于:https://www.cnblogs.com/lttlpp61007188/p/10871609.html
總結
以上是生活随笔為你收集整理的Web框架与HTTP协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [多线程] Thread
- 下一篇: http dns djang