開發與維運

Http請求頭

本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。

Http請求頭

上一節中主要講了響應頭,我們並沒有關注請求頭裡到底有哪些東西,運行如下代碼:

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('192.168.31.199', 8090))
server_socket.listen(128)
while True:
    client_socket, client_addr = server_socket.accept()
    data = client_socket.recv(1024).decode('utf8')
    print('接收到{}的數據{}'.format(client_addr[0], data))


    client_socket.send('HTTP/1.1 200 OK\n'.encode('utf8'))
    client_socket.send('content-type:text/html\n'.encode('utf8'))
    client_socket.send('\n'.encode('utf8'))

    client_socket.send('<h1 style="color:red">hello world</h1>'.encode('utf8'))

瀏覽器訪問結果:

image.png

控制檯輸出如下:

image.png

請求頭第一句 GET / HTTP/1.1 表示:

  • GET 請求方式,GET/POST/PUT/DELETE... ...
  • / 請求的路徑
  • HTTP/1.1 HTTP版本號

此時我們改變訪問的路徑:

image.png

可以看到請求頭第一句變為 GET /index.html?name=jack&age=18 HTTP/1.1,說明中間部分還可以表示請求的參數。
請求頭第二句 Host: 192.168.31.199:8090 表示請求的服務器地址。
其他的信息暫時不用管了,是瀏覽器相關的信息,簡單解釋UA:用戶代理,最開始設計的目的,是為了能從請求頭裡辨識瀏覽器的類型。

IP地址的綁定

ip地址只能通過ip地址訪問,若將綁定的地址改為127.0.0.1,就可以在瀏覽器中用這個地址來訪問到(或訪問localhost):

image.png

前幾節中我們使用到的0.0.0.0也能表示本機,它表示所有的可用的地址,如果使用127.0.0.1,則只能通過本機來訪問,別人無法訪問,可見如果在雲服務器上部署,使用0.0.0.0更為方便。

配套視頻

Leave a Reply

Your email address will not be published. Required fields are marked *