Bab 10 10 Potokol Http Dalam modul ini, kita lanjutkan tentang properti penggunaan protokol http server, aplikasi akan dibahas dengan contoh program, informasi yang responce dari komputer ke request web resource, web resource seperti alamat situs yang terhubung dengan internet. Isi yang akan dibahas yaitu: Daftar Isi Properti HttpWebRequest 1 Properi Informasi Methode, PreAuthenticate dan Versi Protokol 4 Properti Path, Url, Port dan Scheme 5 Properti Http Web Response and its properties 7 Properti Have Response, Modified Since, Keep Alive, Maximum Automatic 9 Properti Web Header, Last Modified, Protocol Version, Response Uri 11 Properti HttpWebRequest Ketika proses akses web server terdapat proses komunkasi yang dilakukan browser untuk melakukan sebuah request ke web server yang dituju, proses tersebut umumnya tidak menjadi perhatian terdapat user, dalam modul ini akan dibuat aplikasi untuk mencatat komunikasi ke server, tahap ini kita dapat melihat proses yang ingin diketahui yaitu: Alamat server, dengan alamat domain web tersebut Allow auto redirect, digunakan untuk meminta request secara otomatis ke http header menuju lokasi resource baru Allow write stream buffering, digunakan untuk menyimpan data di memori sehingga dapat digunakan kembali untuk permintaan redirect, autentifikasi Bab 10. Protokol Http Hal: 1
Client certificates. Digunakan untuk akses client dapat disetujui dengan akses sertifikat yang sama. Dalam aplikasi ini dibutuhkan komponen, label, text dan combobox, group box yang dapat terlihat pada gambar. Gambar 10. 1 Proses library yang digunakan yaitu: Kode lengkapnya seperti dibawah ini: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim httpreq As System.Net.HttpWebRequest Try Dim httpurl As New System.Uri(TextUrl.Text) httpreq = CType(WebRequest.Create(httpURL), HttpWebRequest) TextAddress.Text = httpreq.address.tostring Bab 10. Protokol Http Hal: 2
TextAuto.Text = httpreq.allowautoredirect.tostring TextWrite.Text = httpreq.allowwritestreambuffering.tostring TextClient.Text = httpreq.clientcertificates.tostring Catch ex As Exception MsgBox("Invalid URL", 0, "Error") End Try End Class Pada program diatas, menjelaskan ketika button di klik maka proses pemanggilan request tersimpan di komponen text yang sudah disediakan sebelumnya. Fungsi sudah di sediakan oleh vb.net seperti mendapatkan properti allowautoredirect, AllowWriteStreamBuffering dan clientcertificates dan hasilnya seperti pada gambar dibawah ini. Pengujian silakan input alamat situs dan tekan tombol button. Gambar 10. 2 Bab 10. Protokol Http Hal: 3
Properi Informasi Methode, PreAuthenticate dan Versi Protokol Sama halnya dengan yang diatas, kita dapatkan informasi metode mengirimkan informasi, proses autentifikasi dan versi protokol yang digunakan. Komponen desain yang akan digunakan sama dengan yang sebelumnya, yaitu label, text dan button, desain pada gambar Method, digunaan untuk mendapatkan resource dari internet, standarnya menggunakan GET. PreAuthenticate,digunakan untuk mendapatkan autentifikasi sebelum meminta request. VersiProtokol, digunakan untuk mendapatkan versi protkol HTTP yang digunakan. Gambar 10. 3 Sama dengan sebelumnya proses ketika user mengetikan alamat situs dan tekan button,maka properti dari method, preauthenticate dan versi protokol ditampilkan, kode lengkap seperti pada kode Public Class Method_PreAuthenticate_ProtocolVersion Private Sub ButtonInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonInfo.Click Dim httpreq As System.Net.HttpWebRequest Try Dim httpurl As New System.Uri(TextUrl.Text) Bab 10. Protokol Http Hal: 4
httpreq = CType(WebRequest.Create(httpURL), HttpWebRequest) TextMethod.Text = httpreq.method.tostring TextAuth.Text = httpreq.preauthenticate TextProtocol.Text = httpreq.protocolversion.tostring Catch ex As Exception MsgBox("Invalid URL", 0, "Error") End Try End Class Contoh hasil pengujian didapatkan alamat situs, metode pemanggilan atau pengiriman, pre autentifikasi dan versi protokol seperti pada gambar Properti Path, Url, Port dan Scheme Gambar 10. 4 Proses selanjutnya untuk mendapatkan properti http server path, url dan scheme, dimana path menunjukan alamat resource web, Port menunjukan nomor port yang ditunjukan untuk mengakses web server dengan standard umumnya 80, dapat pula yang lain misalkan 8080, 3128 atau port lainnya, dan scheme menunjukan protokol Bab 10. Protokol Http Hal: 5
yang digunakan, desain aplikasi seperti pada gambar dengan komponen yang dibutuhkan label text dan button. Gambar 10. 5 Dan program saaat ditekan button yaitu pada kode program. Dibawah ini, menunjukan Public Class GetPort Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myuri As New Uri(TextBox6.Text) TextBox1.Text = myuri.host TextBox2.Text = myuri.absolutepath TextBox3.Text = myuri.absoluteuri TextBox4.Text = myuri.port.tostring TextBox5.Text = myuri.scheme End Class Bab 10. Protokol Http Hal: 6
Gambar 10. 6 Properti Http Web Response and its properties Pada sub bab module ini, ditampilkan response yang diterima untuk menerima resource dan menampilkan properti ke dalam aplikasi, diantaranya input web name, character set, sampai status code dan status deskripsi, seperti pada desain dibawah Gambar 10. 7 Bab 10. Protokol Http Hal: 7
Kodeprogram dibawah menjelaskan, ketika program ditekan ok maka properti web resource dapat ditampilkan diaplikasi Public Class WebRespro Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim httpreq As System.Net.HttpWebRequest Dim httpresp As System.Net.HttpWebResponse Try Dim httpurl As New System.Uri(TextBox1.Text) httpreq = CType(WebRequest.Create(httpURL), HttpWebRequest) httpresp = CType(httpReq.GetResponse(), HttpWebResponse) TextBox2.Text = httpresp.characterset.tostring TextBox3.Text = httpresp.contentencoding.tostring TextBox4.Text = httpresp.contentlength.tostring TextBox5.Text = httpresp.contenttype.tostring TextBox6.Text = httpresp.lastmodified.tostring TextBox7.Text = httpresp.method.tostring TextBox8.Text = httpresp.protocolversion.tostring TextBox9.Text = httpresp.responseuri.tostring TextBox10.Text = httpresp.server.tostring TextBox11.Text = httpresp.statuscode.tostring TextBox12.Text = httpresp.statusdescription.tostring Catch ex As Exception Label12.Text = ex.stacktrace.tostring() End Try Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() MenuUtama.Show() End Class Bab 10. Protokol Http Hal: 8
Dan hasil pengujian seperti dibawah ini, dengan menginputkan alamat situs dan tekan ok untuk melihat proses Gambar 10. 8 Properti Have Response, Modified Since, Keep Alive, Maximum Automatic Kita lanjutkan, mendapatkan informasi lainnya, yang pertama have response, yaitu mendapatkan informasi apakah terdapat response ke situs atau resource yang dituju. Properti keep alive untuk mendapatkan informasi terhubung dengan sumber resource internet. Maximum automatic redirection untuk mendapatkan jumlah maksimum request yang dapat dilakukan untuk request Bab 10. Protokol Http Hal: 9
Gambar 10. 9 Kode program yang digunakan: Public Class Response Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim httpreq As System.Net.HttpWebRequest Try Dim httpurl As New System.Uri(TextBox5.Text) httpreq = CType(WebRequest.Create(httpURL), HttpWebRequest) TextBox1.Text = httpreq.haveresponse.tostring TextBox2.Text = httpreq.ifmodifiedsince.tostring TextBox3.Text = httpreq.keepalive TextBox4.Text = httpreq.maximumautomaticredirections Catch ex As Exception TextBox1.Text = ex.stacktrace.tostring() End Try Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() MenuUtama.Show() End Class Bab 10. Protokol Http Hal: 10
Dan contoh pengujian, di input alamat situs misalkan http://fst.uinjkt.ac.id/pusdatin kemudian proses dengan click me Gambar 10. 10 Properti Web Header, Last Modified, Protocol Version, Response Uri Properti lainnya, kita dapatkan informasi informasi web response header,selanjutnya informasi request akhir ke web resource, versi http dan alamat situs yang ditampilkan dalam domain Gambar 10. 11 Bab 10. Protokol Http Hal: 11