Saya telah menulis fungsi singkat di Python3 untuk mengurai header HTTP. Saya bertanya-tanya apakah ada orang yang bisa melihatnya dan memberi tahu saya apakah ada sesuatu yang bisa saya lakukan secara berbeda untuk membuat kodenya lebih baik. Apa yang saya miliki saat ini menghasilkan hasil yang diperlukan tetapi saya tidak yakin apakah akan ada situasi di mana kode ini tidak memberikan hasil yang diinginkan.
Inilah yang saya punya:
def _parse_headers(self, headers):
lines = headers.split("\r\n")
info = lines[0].split(" ")
method = None
path = None
protocol = None
headers = {}
if len(info) > 0:
method = info[0]
if len(info) > 1:
path = info[1]
if len(info) > 2:
protocol = info[2]
for line in lines[1:]:
if line:
parts = line.split(":")
key = None
value = None
if len(parts) > 0:
key = parts[0]
if len(parts) > 1:
value = parts[1]
if not key is None and not value is None:
headers[key.strip().upper()] = value.strip()
return {
"method": method,
"path": path,
"protocol": protocol,
"headers": headers
}
:
. Ada juga masalah dalam mengenali hanya\r\n
jeda baris, meskipun\n
jeda baris tidak sepenuhnya sesuai, Anda harus menerima atau menolaknya secara eksplisit. - person Dietrich Epp   schedule 11.09.2014if
tersebut dengan peretasan ini:method, path, protocol = (info + 3*[None])[:3]
. Tapi ini adalah sebuah peretasan. :) - person PM 2Ring   schedule 12.09.2014