1. 程式人生 > >Python學習之路—2018/6/14

Python學習之路—2018/6/14

使用 響應 瀏覽器 con 限制 end F12 spa TP

Python學習之路—2018/6/14

1.瀏覽器與服務器

瀏覽器向服務器發送請求的過程為請求過程,服務器向瀏覽器響應的過程為響應過程。

2.簡單的web應用程序

import socket

sock = socket.socket()
sock.bind(("100.113.14.43", 8080))
sock.listen(5)

with open("index.html", "r") as f:  # 先將樣式寫入html文件中,然後再讀取發送給瀏覽器
    content = f.read()

while True:
    print("server starting...")
    conn, addr =
sock.accept() data = conn.recv(1024) print("data:", data) conn.send(("HTTP/1.1 200 OK\r\n\r\n%s" % content).encode("utf8")) # http協議格式 conn.close() sock.close()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head> <body> <h1>Hello World</h1> <img src="https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike150%2C5%2C5%2C150%2C50/sign=a102dc900f24ab18f41be96554938da8/8b82b9014a90f60380e9a5f13f12b31bb051ed2f.jpg"> </body> </html>

接下來用瀏覽器訪問100.113.14.43:8080

3.請求協議

請求格式


技術分享圖片
get與post區別

  • get主要用於獲取數據庫數據,當對數據庫數據進行更新時使用post
  • get無請求體,提交的數據放入url後面,通過?分隔,參數之間通過&連接,例如100.113.14.43:8080/gyq?name=gyq&age=22;post提交的數據存放在請求體中
  • 由於url長度有限,所以get提交的數據大小有限制;post提交數據大小沒有限制

    響應協議?

響應格式
技術分享圖片
響應狀態碼

類型 原因
1XX Information(信息) 請求正在處理
2XX Success(成功) 請求處理完畢
3XX Redirection(重定向) 需要進行附加操作以完成請求
4XX Client Error(客戶端錯誤) 服務器無法處理請求
5XX Server Error(服務器錯誤) 服務器處理請求錯誤
from wsgiref.simple_server import make_server


def appliaction(environ, start_response):
    # environ:按照http協議解析數據
    # strat_response:按照http協議組裝數據
    path = environ.get("PATH_INFO")
    start_response("200 OK", [])
    with open("index.html", "rb") as f:
        data1 = f.read()
    with open("login.html", "rb") as f:
        data2 = f.read()
    if path == "/index":
        return [data1]
    elif path == "/login":
        return [data2]
    else:
        return [b"<h1>哈哈哈</h1>"]


httpd = make_server("", 8090, appliaction)
print("server starting..")
# 開始監聽
httpd.serve_forever()

Python學習之路—2018/6/14