Permintaan - Header Permintaan HTTP

Pada bab sebelumnya, kita telah melihat bagaimana membuat request dan mendapatkan responnya. Bab ini akan membahas lebih lanjut tentang bagian tajuk URL. Jadi, kita akan melihat yang berikut -

  • Memahami Header Permintaan
  • Header Kustom
  • Header Respons

Memahami Header Permintaan

Tekan sembarang URL di browser, periksa dan periksa di tab jaringan alat pengembang.

Anda akan mendapatkan header respons, header permintaan, payload, dll.

Misalnya, pertimbangkan URL berikut -

https://jsonplaceholder.typicode.com/users

Anda bisa mendapatkan detail header sebagai berikut -

Contoh

import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users', 
stream = True)
print(getdata.headers)

Keluaran

E:\prequests>python makeRequest.py
{'Date': 'Sat, 30 Nov 2019 05:15:00 GMT', 'Content-Type': 'application/json; 
charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 
'Set-Cookie': '__cfduid=d2b84ccf43c40e18b95122b0b49f5cf091575090900; expires=Mon, 30-De
c-19 05:15:00 GMT; path=/; domain=.typicode.com; HttpOnly', 'X-Powered-By': 
'Express', 'Vary': 'Origin, Accept-Encoding', 'Access-Control-Allow-Credentials': 't
rue', 'Cache-Control': 'max-age=14400', 'Pragma': 'no-cache', 'Expires': '-1', '
X-Content-Type-Options': 'nosniff', 'Etag': 'W/"160d-1eMSsxeJRfnVLRBmYJSbCiJZ1qQ
"', 'Content-Encoding': 'gzip', 'Via': '1.1 vegur', 'CF-Cache-Status': 'HIT', 
'Age': '2271', 'Expect-CT': 'max-age=604800, 
report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"', 'Server': 'cloudflare', 'CF-RAY': '53da574f
f99fc331-SIN'}

Untuk membaca header http, Anda dapat melakukannya sebagai berikut -

getdata.headers["Content-Encoding"] // gzip

Header Kustom

Anda juga dapat mengirim header ke URL yang dipanggil seperti yang ditunjukkan di bawah ini.

Contoh

import requests
headers = {'x-user': 'test123'}
getdata = requests.get('https://jsonplaceholder.typicode.com/users', 
headers=headers)

Header yang diteruskan harus dalam format string, bytestring, atau Unicode. Perilaku permintaan tidak akan berubah sesuai dengan header khusus yang diteruskan.

Header Respons

Header respons terlihat seperti di bawah ini saat Anda memeriksa URL di alat pengembang browser, tab jaringan -

Untuk mendapatkan detail dari header dari penggunaan modul permintaan. Response.headers seperti yang ditunjukkan di bawah ini -

Contoh

import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users')
print(getdata.headers)

Keluaran

E:\prequests>python makeRequest.py
{'Date': 'Sat, 30 Nov 2019 06:08:10 GMT', 'Content-Type': 'application/json; 
charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 
'Set-Cookie': '__cfduid=de1158f1a5116f3754c2c353055694e0d1575094090; expires=Mon,
30-Dec-19 06:08:10 GMT; path=/; domain=.typicode.com; HttpOnly', 'X-Powered-By': 
'Express', 'Vary': 'Origin, Accept-Encoding', 'Access-Control-Allow-Credentials': 't
rue', 'Cache-Control': 'max-age=14400', 'Pragma': 'no-cache', 'Expires': '-1', '
X-Content-Type-Options': 'nosniff', 'Etag': 'W/"160d-1eMSsxeJRfnVLRBmYJSbCiJZ1qQ
"', 'Content-Encoding': 'gzip', 'Via': '1.1 vegur', 'CF-Cache-Status': 'HIT', 
'Age': '5461', 'Expect-CT': 'max-age=604800, report-uri="https://report-uri.cloudf
lare.com/cdn-cgi/beacon/expect-ct"', 'Server': 'cloudflare', 'CF-RAY': '53daa52f
3b7ec395-SIN'}

Anda bisa mendapatkan tajuk tertentu yang Anda inginkan sebagai berikut -

print(getdata.headers["Expect-CT"])

Keluaran

max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/exp
ect-ct

You can also get the header details by using the get() method.

print(getdata.headers.get("Expect-CT"))

Keluaran

max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/exp
ect-ct