Python - Respon HTTP

Http atau Hyper Text Transfer Protocol bekerja pada model server klien. Biasanya browser web adalah klien dan komputer yang menghosting situs web adalah server. Setelah menerima permintaan dari klien, server menghasilkan respons dan mengirimkannya kembali ke klien dalam format tertentu.

Setelah menerima dan menafsirkan pesan permintaan, server menanggapi dengan pesan tanggapan HTTP:


     
  • A Status-line
  • Zero or more header (General|Response|Entity) fields followed by CRLF
  • An empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header fields
  • Optionally a message-body

Bagian berikut menjelaskan setiap entitas yang digunakan dalam pesan tanggapan HTTP.

Message Status-Line

Status-Line terdiri dari versi protokol yang diikuti dengan kode status numerik dan frase tekstual yang terkait. Elemen dipisahkan oleh spasi karakter SP.

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

Versi HTTP

Server yang mendukung HTTP versi 1.1 akan mengembalikan informasi versi berikut:

HTTP-Version = HTTP/1.1

Kode status

Elemen Kode-Status adalah bilangan bulat 3-digit dimana digit pertama dari Kode-Status mendefinisikan kelas respon dan dua digit terakhir tidak memiliki peran kategorisasi. Ada 5 nilai untuk digit pertama:

SN Kode dan Deskripsi
1 1xx: Informational

Artinya permintaan sudah diterima dan prosesnya terus berjalan.

2 2xx: Success

Artinya tindakan itu berhasil diterima, dipahami, dan diterima.

3 3xx: Redirection

Ini berarti tindakan lebih lanjut harus diambil untuk menyelesaikan permintaan tersebut.

4 4xx: Client Error

Artinya permintaan tersebut mengandung sintaks yang salah atau tidak dapat dipenuhi.

5 5xx: Server Error

Ini berarti server gagal memenuhi permintaan yang tampaknya valid.

Kode status HTTP dapat dikembangkan dan aplikasi HTTP tidak diperlukan untuk memahami arti dari semua kode status terdaftar.

Menggunakan Permintaan Python

Dalam program python di bawah ini kami menggunakan modul urllib3 untuk membuat permintaan GET http dan menerima respons yang berisi data. Ini juga menyediakan kode respons yang juga dikelola oleh fungsi-fungsi dalam modul. Objek PoolManager menangani semua detail penggabungan koneksi dan juga menangani keamanan thread.

import urllib3
http = urllib3.PoolManager()
resp = http.request('GET', 'http://tutorialspoint.com/robots.txt')
print resp.data
# get the status of the response
print resp.status

Ketika kami menjalankan program di atas, kami mendapatkan output berikut -

User-agent: *
Disallow: /tmp
Disallow: /logs
Disallow: /rate/*
Disallow: /cgi-bin/*
Disallow: /videotutorials/video_course_view.php?*
Disallow: /videotutorials/course_view.php?*
Disallow: /videos/*
Disallow: /*/*_question_bank/*
Disallow: //*/*/*/*/src/*
200