Kita telah melihat di beberapa tempat bagaimana ASP membuat atau memodifikasi header HTTP yang dikirim ke klien sebagai respons terhadap permintaan halaman. Ada beberapa properti dan metode dalam objek Response yang dapat membantu kita melakukan hal ini. Berikut adalah beberapa metode header:
· Kontrol caching dan kadaluwarsa.
· Buat status dan header HTTP yang disesuaikan.
· Tentukan tipe MIME atau tipe konten.
· Tambahkan tag PICS.
Masing-masing aspek ini akan dibahas secara singkat selanjutnya. Anda dapat memeriksa properti dan metode yang sedang kita bicarakan dengan mengklik nama properti atau nama metode yang relevan di halaman beranda "Objek Respons" (show_response.asp).
1. Caching dan Halaman Web ASP yang "Kedaluwarsa"
Browser pengguna, serta server proxy apa pun antara mereka dan server, dapat menyimpan cache HTML dan halaman web yang dibuat dengan ASP. Ketika pengguna kemudian meminta halaman tersebut, browser mengirimkan permintaan "terakhir diubah" ke server (menggunakan header HTTP_IF_MODIFIED_SINCE yang berisi tanggal versi cache) untuk menanyakan apakah halaman tersebut telah diubah.
Jika belum diubah, server akan merespons dengan kode status dan pesan "304 Not Modified" dan browser akan menggunakan konten yang di-cache tanpa mengunduh salinannya melalui jaringan. Jika versi modifikasi sudah ada, maka akan dikirimkan bersama dengan kode status dan pesan "200 OK".
1) Atribut Response.CacheContol
Faktor lain juga akan mempengaruhi proses pemrosesan ini. Namun, server proxy mana pun dalam rute jaringan yang digunakan oleh halaman web (biasanya terletak di sisi klien) dapat dihentikan dari cache halaman web dengan mengatur properti Response.CacheControl ke Pribadi. Di ASP 3.0, ini adalah default untuk halaman web ASP dan tidak perlu disetel. Namun ini sangat berguna ketika halaman web secara khusus disesuaikan untuk pengunjung individu. Ini mencegah pengguna lain di jaringan yang sama mengakses halaman yang sama. Ketika nilai atribut CacheControl diatur ke Publik, server diperbolehkan untuk menyimpan halaman web dalam cache. Perhatikan bahwa beberapa server proxy mungkin berperilaku berbeda dan mengabaikan atau mengabaikan header ini.
Di IE4, dimungkinkan untuk mendapatkan pesan palsu "Halaman ini telah kedaluwarsa" ketika cache server proxy tersedia. Kami telah menyediakan halaman web (expiretest_form.asp) yang dapat diuji pada jaringan melalui server proxy Anda sendiri untuk memeriksa dampak atribut ini. Halaman ini dapat ditampilkan dengan mengklik link "Response.CacheControl" pada halaman beranda "Objek Respons". Seperti yang ditunjukkan pada gambar di bawah ini:
Ketika halaman ini dikirimkan ke halaman web expiredtest_result.asp, properti Response.CacheControl dapat diatur, dan kemudian nilai dan waktu eksekusi skrip dimasukkan ke dalam halaman web:
<%
Jika Request.Form(“public”) = “on” Maka kotak centang 'Kontrol Cache telah dicentang
Response.CacheControl = "Publik"
Kalau tidak
Response.CacheControl = "Pribadi"
Akhiri Jika
%>
<HTML>
...
Kontrol-Cache adalah: <B><% = Response.CacheControl %></B><P>
Nilai dalam kotak teks adalah: <B><% Response.Write Request.Form(“textbox”) %>
<%
Respon.Tulis Kanan(“0” & Jam(Sekarang),2) & “:” & Kanan(“0” & Menit(Sekarang),_
& 2) & “:” & Kanan(“0” & Kedua(Sekarang),2)
%></B>
Dengan mengklik "Kembali" dan "Teruskan" di browser, Anda dapat melihat apakah kode dijalankan secara otomatis atau menggunakan salinan cache.
2) Properti Response.Expires dan Response.ExpiresAbsolute
Dua properti yang mengontrol waktu penyimpanan halaman web yang di-cache adalah properti Expires dan ExpriesAbsolute dari objek Response. Response.Expires menentukan jangka waktu, yang dinyatakan dalam menit sejak pembuatan, sehingga halaman harus tetap valid sebelum dibuang dari cache. Atribut ExpiresAbsolute menetapkan tanggal dan waktu absolut untuk kedaluwarsa.
Kami menyediakan contoh halaman web bernama addheaders_form.asp untuk menunjukkan cara menggunakan atribut ini. Klik link untuk kedua properti di halaman beranda Response Object.
Di halaman yang dihasilkan, Anda dapat menambahkan header HTTP kustom Anda sendiri dan mengatur berbagai atribut header HTTP yang memengaruhi respons. Ketika tombol "Kirim Konten Kueri" diklik, halaman show_headers.asp menambahkan header yang dipilih ke aliran data yang dikembalikan dan kemudian menampilkan kode yang digunakan untuk mencapai hal ini, menampilkan waktu eksekusi yang sesuai, yang dapat digunakan untuk memeriksa apakah halaman tersebut tadinya Cache masih dijalankan lagi.
Kode di halaman web show_headers.asp membuat dan menambahkan header HTTP. Prosedurnya adalah sebagai berikut:
<%
'Tulis header HTTP sebelum output lainnya
Jika Request.Form("kedaluwarsa") = "aktif" Maka _
Respon.Kedaluwarsa = Permintaan.Form("nilai_kedaluwarsa")
Jika Request.Form("expiresabs") = "on" Lalu _
Response.ExpiresAbsolute = Permintaan.Form("expiresabs_value")
Jika Permintaan.Form("lastmod") = "aktif" Lalu _
Response.AddHeader “TERAKHIR-MODIFIED”, Cstr(Request.Form(“lastmod_value”))
Jika Permintaan.Form(“pragma”) = “aktif” Lalu _
Response.AddHeader “PRAGMA”, CStr(Request.Form(“pragma_value”))
Jika Request.Form("refresh") = "on" Maka _
Response.AddHeader “REFRESH”, CStr(Request.Form(“refresh_value”))
Jika Request.Form(“addheader”) = “on” Dan Len(Request.Form(“addheader_name”)) Lalu _
Response.AddHeader CStr(Permintaan.Formulir(“nama_addheader”)), _
CStr(Permintaan.Formulir("nilai_tambahan"))
Jika Permintaan.Form("status") = "aktif" Maka _
Respon.Status = Permintaan.Form("status_value")
%>
<HTML>
...
...Tampilkan kode dan waktu eksekusi
...
selebihnya hanya menampilkan kode yang telah dieksekusi dan kapan dieksekusi. Pembaca akan melihat header khusus "PRAGMA" yang disertakan di halaman web (yang belum kita bahas sejauh ini). Beberapa server proxy (sebelumnya) menggunakan ini sebagai indikasi apakah disk web harus di-cache. Standarnya adalah halaman di-cache kecuali header HTTP "PRAGMA=NO-CACHE" diterima.
2. Buat kode status dan header HTTP yang disesuaikan.
Anda dapat menggunakan metode AddHeader dari objek Respons yang Anda lihat sebelumnya di halaman web contoh untuk membuat kode status atau header kustom Anda sendiri yang Anda sukai. Metode ini memerlukan dua parameter: nama header HTTP atau string yang berisi nilainya atau nilai yang ditetapkan padanya. Sebagai contoh, kode berikut menambahkan header REFRESH ke halaman:
Response.AddHeader "REFRESH", "60;URL=newpath/newpage.asp"
Ini setara dengan elemen <META> sisi klien:
<META HTTP- EQUIV=" REFRESH", "60;URL=newpath/newpage.asp">
Dengan kata lain, Anda juga dapat menggunakan metode AddHeader dengan atribut Status untuk membuat browser memuat halaman baru:
Response.Status = "302 Object Moved "
Response.Addheader “Location”, “newpath/newpage.asp”
Ini setara dengan menggunakan metode Response.Redirect:
Response.Redirect “newpath/newpage.asp”
Properti Response.Status dapat digunakan untuk mengirim beberapa pesan status yang diperlukan, misalnya Tambahkan baris berikut:
Response.Status= “401 Unauthorized”
Response.Addheader “WWW-Authenticate”, “BASIC”
memaksa browser untuk menampilkan dialog nama pengguna/kata sandi dan kemudian mengirimkannya kembali ke server menggunakan otentikasi BASIC (yang akan dibahas dalam artikel ini Lihat metode verifikasi nanti di seri ini).
3. Tipe MIME dan tipe konten
Ketika kita ingin mengirim string yang dibuat secara dinamis ke browser, dan string tersebut tidak secara langsung menunjukkan tipe konten saat diberikan ke browser, tetapi memberikan ekstensi yang menunjukkan apakah itu file disk, Response .ContentType sangat berguna. Kecuali ditentukan lain, semua halaman web yang dibuat oleh ASP defaultnya adalah "teks/tipe". Pengidentifikasi tipe konten adalah tipe MIME (MIME adalah singkatan dari Multi-tujuan Internet Multimedia Extension atau Multi-pupose Internet Mail Extension, biasanya bergantung pada konteksnya).
Misalnya, jika anotasi data yang dikirim ke klien adalah gambar yang dibuat dengan membaca nilai biner dari database, Anda perlu menambahkan header CONTENT-TYPE yang sesuai sebelum mengirim konten apa pun:
Response.ContentType = "image/jpeg"
If Anda membuat gambar dari database Untuk file XML, gunakan tipe MIEM "text/xml"; dan jika Anda membuat file teks yang dapat ditampilkan di editor file atau disimpan sebagai file disk di klien, gunakan "teks /teks".
4. Menambahkan tag PICS
Properti Respnse.Pics cukup menambahkan tag PICS (Platform untuk Sistem Konten Internet) ke halaman dengan cara yang sama seperti tag <META> biasa:
QUOT = Chr(34)
StrPicsLabel = “(PICS-1.0” & QUOT & “http://www.rsac.org/ratingsv01.html”_
& QUOT & “ 1 generasi komentar yang benar “ & QUOT _
& “Server RSACi Amerika Utara” & QUOT & “ untuk “ & QUOT _
& “http://situsanda.com” & QUOT & “ pada “ & QUOT _
& “1999.08.01T03:04-0500” & KUTIPAN & “ r (n 0 s 0 v 2 l 3))”
Response.Pics(strPicsLabel)
Kode ini menambahkan label PICS berikut:
(PICS-1.0 “http://www.rsac.org/ratingsv01.html” 1 gen komentar yang benar “RSACi
Server Amerika Utara” untuk “http://situsanda.com” pada “1999.08.01T03:04-0500”
r (n 0 s 0 v 2 l 3))
Untuk mendapatkan informasi lebih lanjut tentang PICS, atau untuk mempelajari lebih lanjut tentang cara menentukan konten halaman, silakan cari di situs http://www.rsac.org/ .
Mendefinisikan header di Internet Service Manager
Pada bagian pertama rangkaian artikel ini, telah dijelaskan cara mengatur properti setiap situs web dan direktori IIS 5.0 di aplikasi Internet Service Manage (MMC plug-in), yang mendefinisikan penggunaannya sumber daya situs atau Direktori ini dikirim ke klien dalam header HTTP dari semua permintaan, memberikan alternatif untuk mengatur properti ini menggunakan kode skrip ASP di setiap halaman web.
Klik kanan pada situs Web atau direktori dan pilih "Properti". Di tab "Header HTTP" pada kotak dialognya, Anda dapat mengatur waktu relatif atau tanggal absolut untuk masa berlaku konten halaman, menentukan header yang disesuaikan, dan membuat label tingkat konten PICS. , tipe konten juga dapat ditentukan melalui pemetaan tipe MIME.
Anda dapat melihat bahwa header HTTP REFRESH khusus telah dibuat dan diterapkan ke semua halaman web yang dimuat dari direktori ini. Artinya, secara otomatis memuat ulang (refresh) setiap menit (ideal untuk menampilkan skor terbaru dari pertandingan bisbol, tetapi bebannya terlalu berat di server).
Untuk menambahkan pemetaan tipe konten khusus di kotak "Peta MIME", cukup klik tombol "Jenis File" di kotak dialog "Properti" utama untuk menambahkannya ke daftar.
Saat Anda mulai bereksperimen dengan header HTTP, Anda akan segera menemukan bahwa tidak semua browser berperilaku sama, dan banyak browser merespons header HTTP yang berbeda dengan cara yang berbeda, sehingga terkadang sangat sulit untuk menetapkan prinsip yang dapat diterapkan secara umum.
2. Gunakan sertifikat klien
Jika Anda membuat situs Web yang aman atau situs dengan bagian konten yang aman, Anda dapat menginstal sertifikat server digital untuk mengautentikasi server dengan mengizinkan pengunjung menggunakan rincian terenkripsi dalam sertifikat. Dengan setiap permintaan halaman ke situs atau direktori, server mengirimkan salinan sertifikat, yang dapat diperiksa oleh browser untuk menentukan dengan siapa ia berbicara.
Demikian pula, server juga dapat diatur untuk mengharuskan pengguna memberikan sertifikat digital yang valid saat memasuki situs web. Mereka dapat memperoleh sertifikat ini dari berbagai sumber, seperti Verisign ( http://www.verisign.com ) atau Thawte Consulting ( http://www.thawte.com ). Pembaca akan melihat rincian proses ini di Bab 25.
Semua situasi ini menggunakan nilai kumpulan ClientCertificate dari objek Permintaan. Contoh kode dalam bab ini telah menyertakan halaman yang menunjukkan bagaimana pengguna menggunakan beberapa metode dari nilai kumpulan ini.
Halaman ini diberi nama showcert.asp dan yang dilakukannya hanyalah mengulangi koleksi ClientCertificate dan menampilkan semua nilai yang dikandungnya. Hal ini dapat dilakukan dengan menggunakan kode sederhana yang sama yang selalu Anda gunakan sebelumnya, satu-satunya perbedaan adalah membuat tabel HTML untuk menampung hasilnya dan memotongnya menjadi kelompok yang terdiri dari 60 karakter.
<TABEL CELLPADDING=0 CELLSPACING=0>
<%
Untuk Setiap keyItem Di Request.ClientCertificate()
StrItemValue = Permintaan.Sertifikat Klien(keyItem)
Jika Len(strItemValue) > 90 Kemudian strItemValue = Kiri(strItemValue, 60) & “..etc.”
Respon.Tulis “<TR><TD>” & keyItem & “ = “ & strItemValue & “</TD></TR>”
Berikutnya
%>
</TABEL>
Menggunakan Pengalihan Sertifikat Klien
Setelah semua pengunjung situs atau bagian situs diminta untuk memberikan sertifikat klien mereka, informasi di dalamnya dapat digunakan untuk membuat halaman web yang kami buat untuk pengguna tersebut. Misalnya, Anda dapat menggunakan entri Organisasi dalam sertifikat mereka untuk secara otomatis mengarahkan mereka ke bagian tertentu dari situs dan mengarahkan pengunjung lain ke tempat lain:
If Request.ClientCertificate("SubjectO") = "Wrox Press Inc" Lalu
Response.Redirect "/wrox_staff/default.asp" 'Situs staf Wrox
Kalau tidak
Response.Redirect "/public/Default.asp" 'Situs publik normal
Selesai Jika
Sesuai, entri Negara dapat digunakan untuk mengarahkan pengunjung ke situs web terkait:
Pilih Case Request.ClientCertificate("SubjectC")
Kasus “Inggris”: Response.Redirect “http://uk_site.co.uk/”
Kasus “DE”: Respons.Redirect “http://de_site.co.de/”
Kasus “FR”: Respons.Redirect “http://fr_site.co.fr/”
'... dll.
Kasus Lain: Response.Redirect “http://us_site.com/”
Pilihan Akhir
3. Membaca dan menulis data biner
Ada dua metode yang menyediakan akses data biner yaitu aliran data HTTP yang dikirim dari browser ke server dan aliran data yang dikembalikan dari server ke browser. Metode Request.BinaryRead bisa mendapatkan parameter yang menentukan jumlah byte yang akan dibaca, dan mengembalikan array tipe varian yang berisi byte yang diperoleh dari segmen POST yang diminta (seperti data dalam kumpulan Formulir ASP). Program berikut membaca 64 byte data pertama:
varContent = Request.BinaryRead(64)
Jika Anda menggunakan metode BinaryRead, Anda tidak akan dapat mengakses koleksi Request.Form ASP di masa mendatang. Demikian pula, setelah kita mereferensikan koleksi Request.Form dengan cara apa pun, kita tidak dapat menggunakan metode BinaryRead.
Dimungkinkan juga untuk menulis data biner ke dalam aliran respons yang dibuat oleh ASP, menggunakan metode BinaryWrite. Anda perlu menyediakan array varian byte yang ingin Anda tulis ke klien:
Response.BinaryWrite(varContent)
Metode ini jarang digunakan kecuali Anda membuat sumber non-HTML dari database. Contoh penggunaannya adalah membaca byte pembentuk gambar dari database dan mengirimkannya ke klien menggunakan metode BinaryWrite.
4. Membuat pesan log kustom
Jika server diatur untuk mencatat permintaan ke file teks dalam W3C Extended Log File Format, Anda dapat menggunakan metode Response.AppendToLog untuk menambahkan string pesan ke akhir entri file log. Metode ini sangat berguna jika Anda ingin menyimpan beberapa nilai atau pesan untuk halaman web tertentu, atau ketika situasi tertentu terjadi pada skrip.
Misalnya, melalui aplikasi "pesanan stasioner" intranet, Anda dapat mencatat jumlah karyawan departemen yang melebihi jumlah entri tertentu:
...
Jika intItemCount > 25 Lalu
Response.AppendToLog "Pesanan dalam jumlah besar dari '" & strDept & departemen."
Akhiri Jika
...
menyiapkan logging yang diperluas
Untuk menggunakan metode AppendToLog, pengaturan logging W3C Extended Log File Format harus diaktifkan. Cara pengaturannya adalah dengan masuk ke tab Web Site pada kotak dialog Properties, pilih kotak centang Enable Logging, pilih W3C Extended Log File Format dan klik tombol Properties, seperti yang ditunjukkan pada gambar berikut:
Pada kotak dialog Extended Logging Properties yang muncul, Anda dapat memilih entri yang ingin Anda sertakan dalam file log. Pastikan URI Stem dicentang, jika tidak, metode AppendToLog akan gagal.
Kami telah menyediakan halaman contoh sederhana yang mencoba menulis entri dalam file log, yang dapat dibuka dari link metode AppendToLog di halaman beranda Objek Permintaan (show_request.asp). Yang dilakukan halaman ini hanyalah membuat string sederhana yang berisi tanggal dan waktu saat ini, lalu jalankan metode AppendToLog:
strToAppend = “Halaman dieksekusi pada ” & Sekarang
Response.AppendToLog strToAppend
Ringkasan
Artikel ini telah memulai studi ASP 3.0, dan kita juga telah melihat bagaimana ASP 3.0 bekerja sama dengan Internet Information Server 5.0 untuk menyediakan metode yang mudah digunakan dan efisien dalam membuat halaman Web dinamis dan aplikasi Web. . Tentu saja, masih ada beberapa tempat yang perlu dipelajari. Bab ini baru saja mempelajari dua objek paling dasar yang dibangun dalam ASP.
Dua objek paling dasar adalah objek Permintaan dan Respons, yang memungkinkan kita mengakses dan menggunakan nilai sebagai bagian dari sesi klien/server, yang terjadi setiap kali pengguna meminta dan memuat halaman atau sumber daya dari situs Web bahwa objek Request dapat memberikan akses ke seluruh konten yang diminta oleh pengguna, sedangkan objek Respon memungkinkan pembuatan dan modifikasi respon yang dikirim kembali oleh server.
Objek-objek ini mengekspos berbagai bagian sesi melalui koleksi dan properti, dan menyediakan beberapa metode untuk mengambil dan memodifikasi segmen individual. Jika Anda menganggapnya sebagai alat untuk menguraikan permintaan pengguna dan membuat respons dengan konten yang sesuai, ini dapat membantu Anda memahami apa yang sedang terjadi. Ini juga akan membantu untuk memahami bagaimana berbagai metode mempengaruhi klien, server, dan halaman web yang dibuat.