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