Tanggapan biadab html. Deskripsi objek Respon. Contoh proteksi yang lemah


Untuk mendapatkan instance kelas ini, gunakan pemanggilan metode wa()->getResponse(), misalnya:

Wa()->getResponse()->getHeader("Jenis konten")

Metode fungsi publik addCss( $url, $app_id = salah)

Menambahkan URL ke daftar file CSS. Semua URL file CSS yang ditambahkan dapat diambil di template Smarty menggunakan metode ($wa->css()).

Pilihan
  • $url

    URL relatif dari file CSS. Jika nilai parameter $app_id ditentukan, maka URL file harus ditentukan relatif terhadap URL direktori dengan file aplikasi terkait. Jika tidak, URL relatif harus ditentukan relatif terhadap direktori instalasi kerangka kerja.

  • $aplikasi_id

    ID Aplikasi.

Contoh wa()->getResponse()->addCss("css/myapp.css", "myapp"); fungsi publik tambahkanGoogleAnalytics ( $str)

Menambahkan cuplikan kode JavaScript untuk Google Analytics. Kode Google Analytics (termasuk yang ditambahkan dengan metode ini) dihubungkan dalam template HTML situs menggunakan metode ($wa->headJs()).

Pilihan
  • $str

    Fragmen kode JavaScript.

fungsi publik addHeader( $nama, $nilai, $ganti = benar)

Menambahkan header yang akan dikirim oleh server sebagai respons terhadap permintaan pengguna. Semua header yang ditambahkan dengan cara ini akan dikirim ke pengguna saat metode dijalankan.

Pilihan
  • $nama

    Nama gelar.

  • $nilai

    Nilai judul.

  • $ganti

    Sebuah bendera yang menunjukkan apakah akan mengganti nilai yang ditetapkan sebelumnya untuk header yang ditentukan.

Contoh wa()->getResponse()->addHeader("Jenis konten", "aplikasi/json"); fungsi publik addJs( $url, $app_id = salah)

Menambahkan URL ke daftar file JavaScript. Semua URL file JavaScript yang ditambahkan dapat diambil di template Smarty menggunakan metode ($wa->js()).

Pilihan
  • $url

    URL file dengan kode JavaScript. Jika nilai parameter $app_id ditentukan, maka URL file harus ditentukan relatif terhadap URL direktori dengan file aplikasi terkait. Jika tidak, URL relatif harus ditentukan relatif terhadap direktori instalasi kerangka kerja.

  • $aplikasi_id

    ID Aplikasi.

Contoh wa()->getResponse()->addJs("js/myapp.js", "myapp"); fungsi publik getCss( $html = benar, $ketat = salah)

Mengembalikan daftar link file CSS yang ditambahkan sebelumnya.

Pilihan
  • $html

    Bendera yang menunjukkan perlunya mengembalikan kode HTML untuk menghubungkan file CSS. Jika false ditentukan, metode akan mengembalikan array URL untuk file tersebut.

  • $ketat

    Tandai untuk menggunakan format XHTML dan bukan HTML ketika $html disetel ke true .

Contoh wa()->getResponse()->getCss(); fungsi publik getHeader( $nama = nol)

Mengembalikan nilai header respons.

Pilihan
  • $nama

    ID header yang nilainya akan dikembalikan. Jika tidak ditentukan, metode ini akan mengembalikan seluruh array header saat ini.

Contoh wa()->getResponse()->addHeader("Jenis konten", "aplikasi/json"); wa()->getResponse()->getHeader("Jenis Konten"); Hasil aplikasi/fungsi publik json getJs ( $html = benar)

Mengembalikan daftar tautan file respons JavaScript.

Pilihan
  • $html

    Bendera opsional yang menunjukkan perlunya mengembalikan kode HTML untuk menghubungkan file JavaScript. Jika tidak, metode ini akan mengembalikan array URL file saat ini.

Contoh wa()->getResponse()->getJs(); fungsi publik getMeta( $nama = nol)

Mengembalikan isi data META: judul halaman ("judul"), kata kunci tag META ("kata kunci"), deskripsi ("deskripsi").

Pilihan
  • $nama

    Pengidentifikasi elemen data META yang nilainya akan dikembalikan. Jika tidak ditentukan, metode ini akan mengembalikan seluruh array data META saat ini.

Contoh wa()->getResponse()->getMeta("kata kunci"); fungsi publik getStatus()

Mengembalikan status respons server yang ditetapkan sebelumnya.

Contoh wa()->getResponse()->setStatus(200); wa()->getResponse()->getStatus(); Hasil 200 fungsi publik getTitle()

Mengembalikan judul (TITLE) halaman.

Contoh wa()->getResponse()->setTitle("Toko online saya"); wa()->getResponse()->getTitle(); Hasil Pengalihan fungsi publik toko online saya ( $url, $kode = nol)

Mengarahkan pengguna ke URL yang ditentukan.

Pilihan
  • $url

    URL tujuan pengalihan pengguna.

  • $kode

    Kode respons server yang harus menyertai pengalihan.

Contoh wa()->getResponse()->redirect("http://otherdomain.ru/", 301); fungsi publik sendHeaders()

Mengirim header yang ditetapkan sebelumnya.

Contoh wa()->getResponse()->addHeader("Jenis konten", "aplikasi/json"); wa()->getResponse()->sendHeaders(); fungsi publik setCookie( $nama, $nilai, $kedaluwarsa = nol, $jalur = nol, $domain = "", $aman = salah, $http_only = salah)

Menetapkan nilai entri cookie menggunakan fungsi setcookie PHP.

Pilihan
  • $nama

    Rekam ID.

  • $nilai

    Nilai rekor.

  • $kedaluwarsa

    Waktu kedaluwarsa.

  • $jalur

    Jalur ke URI "subdirektori" yang berisi nilai entri yang valid.

  • $domain

    Nama domain yang nilai entrinya valid.

  • $aman

    Bendera yang menunjukkan bahwa entri hanya tersedia jika nilai ditransfer melalui protokol HTTPS.

  • $http_hanya

    Sebuah tanda yang menunjukkan bahwa nilai rekaman hanya dapat diakses melalui protokol HTTP dan tidak dapat diakses melalui skrip klien (JavaScript).

Contoh wa()->getResponse()->setCookie("code", $code, time() + 30 * 86400, null, "", false, true); fungsi publik setMeta( $nama, $nilai = nol)

Menetapkan nilai data META. Nilai ini tersedia di templat Smarty menggunakan metode ($wa->meta()).

Pilihan
  • $nama

    Pengidentifikasi elemen data META: judul halaman (“judul”), tag META kata kunci (“kata kunci”) dan deskripsi (“deskripsi”).

  • $nilai

    Nilai elemen.

Contoh wa()->getResponse()->setMeta("kata kunci", $kata kunci); fungsi publik setStatus( $kode)

Menetapkan status respons server.

Pilihan
  • $kode

    Kode status

Contoh wa()->getResponse()->setStatus(404); fungsi publik setTitle( $judul)

Menetapkan judul (TITLE) halaman. Konten judul tersedia di templat Smarty menggunakan metode ($wa->title()).

Setelah menerima dan menafsirkan pesan permintaan, server merespons dengan pesan respons HTTP:

  • Garis Status
  • Tidak ada atau lebih kolom header (Umum|Respon|Entitas) yang diikuti oleh CRLF
  • Baris kosong (yaitu, baris tanpa apa pun sebelum CRLF) yang menunjukkan akhir bidang header
  • Secara opsional, badan pesan
  • Bagian berikut masing-masing menjelaskan entitas yang digunakan dalam pesan respons HTTP.

    Baris Status Pesan

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

Status-Line = Versi HTTP SP Kode Status SP Alasan-Frase Versi HTTP CRLF

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

Versi HTTP = HTTP/1.1

Kode status

Elemen Kode Status adalah bilangan bulat 3 digit dimana digit pertama Kode Status menentukan kelas respons dan dua digit terakhir tidak memiliki peran kategorisasi apa pun. Ada 5 nilai untuk digit pertama:

S.N. Kode dan Deskripsi
1 1xx: Informasional

Artinya permintaan telah diterima dan proses berlanjut.

2 2xx: Sukses

Artinya tindakan tersebut berhasil diterima, dipahami, dan diterima.

3 3xx: Pengalihan

Artinya, tindakan lebih lanjut harus diambil untuk menyelesaikan permintaan tersebut.

4 4xx: Kesalahan Klien

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

5 5xx: Kesalahan Server

Artinya server gagal memenuhi permintaan yang tampaknya valid.

Kode status HTTP dapat diperluas dan aplikasi HTTP tidak diharuskan untuk memahami arti dari semua kode status yang terdaftar. Daftar semua kode status telah diberikan dalam bab terpisah untuk referensi Anda.

Bidang Header Respons

Kita akan mempelajari General-header dan Entity-header dalam bab terpisah ketika kita akan mempelajari bidang header HTTP. Untuk saat ini, mari kita periksa apa itu bidang header Respons.

Bidang header respons memungkinkan server menyampaikan informasi tambahan tentang respons yang tidak dapat ditempatkan di Baris Status. Bidang header ini memberikan informasi tentang server dan tentang akses lebih lanjut ke sumber daya yang diidentifikasi oleh URI Permintaan.

  • Proksi-Otentikasi

  • WWW-Otentikasi

Anda dapat memperkenalkan bidang khusus jika Anda ingin menulis Klien dan Server Web khusus Anda sendiri.

Contoh Pesan Respons

Sekarang mari kita gabungkan semuanya untuk membentuk respons HTTP atas permintaan mengambil halaman hello.htm dari server web yang berjalan di situs

HTTP/1.1 200 OK Tanggal: Sen, 27 Juli 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Terakhir Dimodifikasi: Rabu, 22 Juli 2009 19:15:56 GMT Panjang Konten: 88 Konten- Ketik: text/html Koneksi: Tertutup Halo Dunia!

Contoh berikut menunjukkan pesan respons HTTP yang menampilkan kondisi kesalahan ketika server web tidak dapat menemukan halaman yang diminta:

HTTP/1.1 404 Tidak Ditemukan Tanggal: Minggu, 18 Okt 2012 10:36:20 GMT Server: Apache/2.2.14 (Win32) Panjang Konten: 230 Koneksi: Tipe Konten Tertutup: teks/html; charset=iso-8859-1 404 Tidak Ditemukan Tidak Ditemukan

URL yang diminta /t.html tidak ditemukan di server ini.

Berikut ini contoh pesan respons HTTP yang menunjukkan kondisi kesalahan ketika server web menemukan versi HTTP yang salah dalam permintaan HTTP yang diberikan:

HTTP/1.1 400 Tanggal Permintaan Buruk: Minggu, 18 Okt 2012 10:36:20 GMT Server: Apache/2.2.14 (Win32) Panjang Konten: 230 Tipe Konten: teks/html; charset=iso-8859-1 Koneksi: Ditutup 400 Permintaan Buruk Permintaan Buruk

Browser Anda mengirimkan permintaan yang tidak dapat dipahami oleh server ini.

Baris permintaan berisi karakter yang tidak valid yang mengikuti string protokol.

Objek yang dijelaskan adalah alat yang sangat berguna dan ampuh. Objek ini memiliki beberapa metode, uraiannya diberikan di bawah ini:

Koleksi: Metode: Properti: Respon.Koleksi cookie

Koleksi Cookies menetapkan nilai untuk cookie. Jika cookie yang ditentukan tidak ada, cookie tersebut akan dibuat. Jika cookie ada, cookie tersebut mengambil nilai baru dan menghancurkan nilai lama.

Respon.Cookies(cookie) [(kunci) | . atribut ] = nilai

Pilihan:

  • kue - Nama kue
  • kunci - Parameter opsional. Jika ditentukan, maka cookie adalah direktori (bersarang) dan kuncinya adalah sekumpulan nilai.
  • atribut - Informasi tertentu tentang cookie itu sendiri. Parameter ini dapat berupa salah satu dari berikut ini:
  • value - Menentukan nilai yang akan ditetapkan ke kunci atau atribut ini.
NamaKeterangan
DomainHanya merekam. Jika ditentukan, cookie hanya dikirim berdasarkan permintaan dari domain ini.
KedaluwarsaHanya merekam. Tanggal kadaluwarsa cookie. Tanggal ini harus ditetapkan agar cookie dapat ditulis ke hard drive klien setelah sesi berakhir. Jika atribut ini tidak disetel, maka tanggal kedaluwarsa cookie dianggap sebagai tanggal saat ini. Cookie akan kedaluwarsa segera setelah sesi berakhir.
HasKeyHanya membaca. Menunjukkan apakah cookie berisi kunci yang diberikan.
JalurHanya merekam. Jika ditentukan, cookie hanya dikirim berdasarkan permintaan dari jalur ini. Jika parameter tidak disetel, jalur ke aplikasi akan digunakan.
AmanHanya merekam. Menunjukkan apakah cookie akan dilindungi atau tidak.

Komentar:

Jika cookie kunci dibuat seperti yang ditunjukkan pada skrip berikut,

maka header berikut akan dikirim:

Set-Kue:MYCOOKIE=TYPE1=gula&TYPE2=kue

Jika Anda menetapkan nilai ke cookie saya tanpa menggunakan kunci, maka tindakan ini akan menghancurkan kunci type1 dan type2. Misalnya:

Pada contoh sebelumnya, kunci type1 dan type2 akan dimusnahkan dan nilainya akan hilang. Mycookie sekarang akan berisi nilai coklat marshmallow.

Anda juga dapat memeriksa keberadaan kunci tertentu dengan cara berikut:

Jika TRUE ditampilkan, maka kunci tersebut ada; jika FALSE, maka tidak ada.

Respon. Metode penulisan

Respon.Tulis variabel_atau_nilai

Pilihan:

  • variabel_atau_nilai - Data yang akan ditampilkan di layar browser melalui HTML. Parameter ini dapat berupa jenis apa pun yang didukung oleh VisualBasic Scripting Edition. Artinya, data dapat berupa tipe berikut: tanggal, string, karakter, nilai numerik. Nilai parameter ini tidak boleh berisi kombinasi %>. Sebagai gantinya, Anda dapat menggunakan kombinasi yang setara %\>. Server web akan mengubah urutan ini menjadi urutan yang diperlukan saat skrip dijalankan.

Contoh berikut menunjukkan cara kerja metode Response.write untuk mengeluarkan pesan ke klien.

Saya hanya akan memberi tahu Anda: Dan nama Anda

Contoh berikut menambahkan tag HTML ke halaman web. Karena metode ini tidak dapat berisi kombinasi %>, kami menggunakan urutan %\>. Jadi contoh skripnya:

Outputnya akan menjadi garis:

Respon. Metode pengalihan

Respons.Redirect URL (URL - Uniform Resource Locator)

Pilihan:

  • URL - Parameternya adalah deskriptor sumber daya universal. Ini menunjukkan kapan browser perlu dialihkan.

Komentar:

Setiap kemunculan metode ini antara tag dan halaman web akan diabaikan. Metode ini hanya dapat digunakan di bagian atas halaman HTML. Metode ini akan meneruskan header ke browser jika parameter URL objek ini tidak ada dalam bentuk berikut:

HTTP/1.0 302 URL Lokasi Pemindahan Objek

Respon. Metode akhir

Respon.Akhir

Komentar:

Jika properti Response.Buffer disetel ke TRUE, maka memanggil metode Response.End akan menghapus buffer, mendorong data keluar ke klien. Jika Anda tidak ingin menampilkan data kepada pengguna, Anda harus memanggil metode berikut:

Metode Respon.AddHeader

Metode AddHeader menambahkan header HTML dengan nilai tertentu. Metode ini selalu menambahkan header baru pada respons browser klien. Cara ini tidak menggantikan header yang ada dengan yang baru. Header yang ditambahkan tidak dapat dihapus.

Metode ini hanya digunakan untuk tugas “lanjutan”.

Response.AddHeader nama_variabel, nilai

Pilihan:

  • variabel_name - Nama parameter header HTML baru.
  • value - Tetapkan nilai yang akan diingat di header.
Catatan:

Agar metode ini berfungsi dengan benar, nama_variabel tidak boleh berisi karakter garis bawah (_). Kumpulan ServerVariables menafsirkan garis bawah sebagai tanda hubung di header. Sebagai contoh, skrip berikut memaksa server untuk menemukan parameter dari header HTML yang disebut MY-HEADER.

Karena protokol HTTP mengharuskan semua parameter header diteruskan sebelum isi halaman HTML, Anda harus memanggil metode AddHeader di skrip Anda sebelum deskripsi dimulai.... Ada satu pengecualian. Jika properti Buffer disetel ke true, Anda dapat menulis AddHeader di mana saja dalam skrip, tetapi sebelum panggilan pertama ke metode Flush. Jika tidak, memanggil metode AddHeader akan menimbulkan kesalahan.

Dua file .ASP berikut menunjukkan poin terakhir ini.

teks Anda di halaman

Dalam contoh ini, halaman tidak di-buffer. Skrip berfungsi namun AddHeader dipanggil sebelum server menghasilkan output HTML ke klien.

ini beberapa informasi dari halaman Anda...

Dalam contoh kedua, halaman di-buffer dan, akibatnya, server tidak menampilkan teks ke klien sampai skrip itu sendiri berakhir atau metode Flush ditemukan. Anda dapat menggunakan metode ini untuk mengirim banyak salinan dari beberapa parameter header dengan nilai berbeda, seperti header WWW-Authenticate.

Metode Respons.AppendToLog

Metode AppendToLog menambahkan baris ke akhir file laporan (file log) server web. Anda dapat memanggil metode ini sebanyak yang Anda perlukan. Setiap kali Anda memanggil metode ini, string yang Anda tentukan akan ditulis ke file laporan server.

Nilai Respons.AppendToLog

Pilihan:

  • value - Teks yang akan ditambahkan ke file laporan server web. String ini tidak boleh berisi karakter koma (,). Selain itu, total panjang baris yang ditambahkan tidak boleh melebihi 80 karakter.
Catatan:

Untuk menggunakan fitur ini, Anda harus mengaktifkan opsi Kueri URI di panel "Properti Logging Lanjutan" untuk server web ini di IIS.

Metode Respons.BinaryWrite

Metode BinaryWrite memungkinkan Anda menulis informasi tertentu ke keluaran HTTP saat ini tanpa konversi karakter apa pun. Metode ini berguna untuk mengeluarkan informasi non-string, seperti data biner yang dibutuhkan oleh suatu aplikasi.

Respon.BinaryWrite data

Pilihan:

  • data - Data yang ditujukan untuk keluaran HTTP.

Jika Anda memiliki objek yang menghasilkan array byte, Anda dapat menggunakan panggilan berikut ke metode ini untuk meneruskan array tersebut ke beberapa aplikasi yang berjalan di mesin klien.

Respon. Metode yang jelas

Metode Clear menghapus semua output HTML yang di-buffer. Namun, metode ini tidak menghapus informasi buffer yang terkait dengan header. Anda dapat menggunakan metode ini untuk mengelola kesalahan. Namun, menjalankan metode ini akan menghasilkan kesalahan jika properti Response.Buffer tidak benar.

Properti Respons.CacheControl

Properti ini menggantikan nilai default. Ketika Anda mengatur properti ke Publik, server Proxy dapat menyimpan cache output yang dihasilkan oleh ASP.

Response.CacheControl [= header kontrol cache]

Pilihan:

  • Header kontrol cache - Opsi kontrol header ini dapat berupa Publik atau Pribadi.
Properti Respon.CharSet

Properti CharSet memungkinkan Anda menambahkan nama tabel kode karakter (misalnya, WINDOWS-1251) ke header HTML, baris tipe konten.

Respon.CharSet code_table_name

Pilihan:

  • charset_name - Sebuah string yang menentukan charset untuk halaman HTML ini. Nama tabel kode ini akan ditambahkan ke header file HTML di bawah parameter "tipe konten".

Untuk halaman ASP yang tidak menggunakan properti Response.Charset, parameter "tipe konten" di header adalah sebagai berikut:

Tipe konten:teks/html

Jika file ASP berisi perintah

lalu di header akan terlihat seperti apa bidang tipe konten

Tipe konten:teks/html; rangkaian karakter=Windows-1251

Komentar:

Fungsi ini menyisipkan baris apa pun ke dalam header dan tidak memeriksa validitasnya.

Jika suatu halaman berisi beberapa tag Response.Charset, maka setiap tag berikutnya akan mengganti nilainya dengan nilainya sendiri.

Properti Response.ContentType

Properti ContentType memungkinkan Anda menentukan jenis (type) konten file HTML. Jika properti ini tidak digunakan, maka text/html diambil secara default.

Respons.ContentType [=content_type]

Pilihan:

  • content_type - Sebuah string yang menjelaskan tipe konten HTML. String ini biasanya berbentuk "tipe/subtipe", di mana tipe adalah kategori utama konten dan subtipe menunjukkan tipe konten. Untuk daftar lengkap tipe yang didukung, lihat dokumentasi browser Anda atau spesifikasi HHTP.

Contoh berikut mengilustrasikan pengaturan tipe konten ke Format Definisi Saluran (Saluran Dorong).

Contoh kedua menunjukkan pengaturan properti ke nilai yang paling umum diketahui.

Response. Properti kedaluwarsa

Properti Expires menentukan jangka waktu hingga halaman HTML yang di-cache oleh browser dianggap belum kedaluwarsa (masa penyimpanan). Jika pengguna meminta halaman yang di-cache dari browser yang belum kedaluwarsa, browser akan mengembalikannya langsung dari cache-nya.

Respon.Kedaluwarsa [=angka]

Pilihan:

  • number - Jumlah waktu dalam menit sebelum halaman dianggap "telah lewat waktu". Menetapkan nilai ini ke 0 menyebabkan halaman tertentu menjadi "kedaluwarsa" dengan segera.

Komentar:

Jika properti ini disetel lebih dari sekali pada satu halaman, nilai terkecil yang digunakan.

Response.ExpiresProperti absolut

Properti ExpiresAbsolute menentukan waktu dan tanggal setelah halaman HTML yang di-cache oleh browser dianggap kedaluwarsa (periode retensi telah kedaluwarsa). Jika pengguna meminta halaman yang di-cache dari browser yang belum kedaluwarsa, browser akan mengembalikannya langsung dari cache-nya. Jika waktu ditentukan (dan tanggal ditentukan), maka "tanggal kedaluwarsa" halaman ini berakhir pada tengah malam hari itu. Jika waktu atau tanggal tidak ditentukan, maka nilai diberikan sesuai dengan hari dan waktu skrip dijalankan.

Response.ExpiresAbsolute [= [tanggal] [waktu]]

Pilihan:

  • tanggal - Menunjukkan tanggal kedaluwarsa "umur simpan". Format tanggal harus sesuai dengan standar RFC-1123.
  • waktu - Menunjukkan waktu berakhirnya halaman. Nilai ini dikonversi ke format GMT (Greenwich Mean Time) sebelum header dikirim ke klien.

Komentar:

Jika properti tertentu ditentukan lebih dari satu kali pada suatu halaman, maka waktu berakhirnya "periode penyimpanan" dianggap paling awal dari semua nilai yang ditentukan.

Properti Response.IsClientConnected

Properti ini bersifat read-only, artinya tidak ada nilai yang dapat ditetapkan ke properti ini. Properti ini menunjukkan apakah klien terhubung atau tidak lagi terhubung ke server yang ditentukan di Response.Write terakhir.

Respon.IsClientConnected()

Komentar:

Properti ini memungkinkan Anda menentukan kapan pengguna terhubung dan kapan dia terputus dari server. Misalnya, lamanya jangka waktu antara saat server merespons dan saat klien membuat permintaan memberikan keyakinan bahwa klien masih terhubung dan masuk akal untuk terus menjalankan skrip.