Asas Sisi Pelayan Termasuk atau teknologi SSI

Apa dah jadi ssi dan awak makan dengan apa?

Termasuk Bahagian Pelayan (SSI).Perkara ini dalam reka bentuk WWW amat diperlukan dan berguna, kerana ia sangat memudahkan kerja mencipta dan menyelenggara laman web.

Sertakan Sisi Pelayan diterjemahkan daripada bahasa Inggeris sebagai "disertakan pada bahagian pelayan." Teknologi ini membenarkan pelayan Web untuk memasukkan sebarang teks lain dalam teks halaman HTML anda: kandungan fail teks atau, sebagai contoh, hasil skrip CGI (yang, seperti yang anda tahu, biasanya diformatkan sebagai teks HTML). "Menghidupkan" ini berlaku serta-merta sebelum teks halaman HTML dipindahkan ke penyemak imbas pengguna, supaya pelawat halaman tidak menyedari "kecoh" pelayan ini.

Apa faedahnya SSI? Faedahnya sangat besar. Mari kita anggap bahawa pada setiap halaman tapak anda, anda telah meletakkan senarai bahagian tapak yang tersedia. Ciptaan anda, sebagaimana mestinya, sentiasa berkembang, jadi anda memutuskan untuk menambah bahagian lain. Apa sekarang, buka semua halaman dalam editor dan bodoh menambah perkara yang sama pada teks? Seorang perintis Soviet (yang sukakan cabaran) akan melakukan perkara ini, dan pereka Web yang bijak akan melakukannya gunakan SSI. Untuk melakukan ini, hanya buat fail teks yang berasingan (contohnya, menu.html) dan tambahkan kod HTML untuk senarai bahagian di sana. Terus ke halaman tapak, di tempat di mana senarai bahagian harus ditempatkan, anda perlu memasukkan arahan berikut:
Sila ambil perhatian bahawa anda mesti mengikut sintaks arahan SSI kepada surat tersebut. Jika anda terlupa, sebagai contoh, untuk meletakkan dua sempang pada penghujung arahan, pelayan benar-benar akan "tercekik" padanya, berhenti menghuraikan halaman.

Apabila seseorang ingin melihat halaman ini, pelayan akan menggantikan arahan<#include>kandungan fail menu.html. Jika anda menukar fail menu.html, maka semua halaman yang anda gunakan<#include>, akan dikemas kini secara automatik. Sila ambil perhatian: tiada perubahan dalam fail HTML yang terletak pada cakera pelayan Web - pelayan memasukkan teks dengan cepat sebelum menghantar halaman WWW ke penyemak imbas pelawat.

Daripada nama biasa fail teks dalam arahan<#include>anda boleh menentukan nama skrip CGI. Dalam kes ini, pelayan akan mula-mula melaksanakan skrip CGI, dan kemudian memasukkan hasil skrip ke dalam teks halaman WWW. Ini bermakna anda akan dapat melaksanakan perkara seperti, sebagai contoh, kaunter teks melawat atau memaparkan frasa yang dipilih secara rawak pada halaman.

Terdapat satu lagi kelebihan tidak langsung menggunakan SSI: disebabkan penggunaan templat seperti menu.html yang disebutkan di atas, halaman WWW akan menjadi lebih kecil dalam saiz, dan anda boleh menjimatkan banyak masa dengan memindahkan fail ke pelayan Web melalui FTP.

Tetapi tidak semuanya begitu indah. Sebagai contoh, anda tidak akan dapat bereksperimen dengan SSI pada mesin yang tidak mempunyai pelayan Web yang dipasang. Fungsi SSI dipastikan oleh pelayan, jadi apabila melihat fail HTML dari tempatan cakera keras(contohnya, C :), penyemak imbas anda akan mengabaikan arahan SSI - lagipun, dari sudut HTML, ia adalah komen biasa.

Selain itu, pelayan mesti dikonfigurasikan untuk menyokong SSI. Dan anda menemui penyedia yang tamak yang mula menuntut wang untuk persediaan sedemikian. Adalah lebih baik untuk tidak menggunakan perkhidmatan mereka, kerana sokongan SSI didayakan dengan menambahkan beberapa baris pada fail konfigurasi Pelayan Web Apache dan beberapa tindakan mudah pentadbir lain, yang mengambil wang, pada pendapat saya, adalah satu dosa.

Nasib baik, tidak ada banyak pembekal sedemikian. Kebanyakan menawarkan sokongan SSI secara lalai. Tetapi perlu diingat bahawa pelayan percuma, seperti Hoom, Tripod, Geocities, Chat.ru SSI tidak dibenarkan. Tiada apa yang boleh anda lakukan mengenainya :-(

Bercakap tentang tetapan pelayan. Apabila sokongan SSI didayakan, pelayan mula mengimbas semua halaman untuk kehadiran arahan SSI, yang meningkatkan beban pada pelayan. Oleh itu sangat kerap pentadbir sistem dayakan SSI hanya untuk fail dengan sambungan tertentu - biasanya .shtml. Jadi jika SSI tidak berfungsi dalam fail .html, cuba namakan semula mereka kepada .shtml, atau lebih baik lagi, tanya pentadbir sistem anda tentangnya :-)

Secara umum, SSI sememangnya alat yang berguna, yang tidak patut diabaikan jika anda menghargai masa (dan wang) anda.

Apakah SSI dan apa yang dimakan dengan II

Dengan artikel ini saya ingin membuka subseksyen baharu pada KELAB URL DVK. "Lajur Anda" bertujuan untuk mengumpulkan bahan dan pendapat daripada pelawat kami. Artikel pertama telah ditulis oleh moderator kami bagi bahagian "Smoke Break" berdasarkan salah satu topik mengenai "Smoke Break", di mana Alexander menerangkan beberapa ciri penggunaan arahan SSI. Penulis juga ingin mengingatkan anda bahawa arahan SSI hanya boleh digunakan pada pelayan yang menyokongnya. Majoriti hosting percuma rangkaian tidak mempunyai ciri sedemikian, tetapi hanya tidak menyokong SSI.

Mukadimah
Intipati dan teknik paling mudah dalam SSI telah pun diterangkan di laman web ini. Sebagai peraturan, anda jarang menjumpai apa-apa selain daripada perihalan fungsi "termasuk" tunggal dalam bentuk paling mudah pada halaman artikel mengenai penguasaan.

Walau bagaimanapun, SSI dengan selamat boleh dipanggil bahasa pengaturcaraan, walaupun bukan bahasa yang lengkap, tetapi bahasa. SSI membolehkan anda menentukan keadaan dan pembolehubah, dan juga boleh berfungsi dengan apa yang dipanggil pembolehubah persekitaran, salah satunya ialah $QUERY_STRING, yang digunakan secara aktif semasa pengaturcaraan dalam Perl, PHP dan bahasa skrip pelayan lain. Di sinilah keseronokan bermula.

Intipati fenomena atau hasil yang ada pada Juruweb.
Pada umumnya, kita kini akan bercakap tentang templat. Pada kemas kini seterusnya orang yang menyelenggara tapak hanya perlu menambah pautan ke halaman baharu dalam jadual kandungan dan mencipta fail dengan teks berformat biasa tanpa sebarang penanda. Setuju bahawa ini sangat mudah :)

Teknologi: Arahan bersyarat dan pembolehubah persekitaran $QUERY_STRING.
Secara umum, terdapat beberapa jenis templat index.shtml, iaitu yang berikut:

:: Tajuk, sial::



...Tag yang keren dan grafik yang keren...

Di sini, pada dasarnya, tidak sepatutnya ada masalah dengan pemahaman, tetapi yang berikut adalah bahagian yang paling menarik. Biar saya jelaskan bahawa nilai pembolehubah $QUERY_STRING ditentukan oleh kandungan rentetan pertanyaan selepas tanda "?", i.e. http://maste.ru/razdel/index.shtml?page1.
bahagian kedua dan utama:



Saya rasa transkrip diperlukan. Kami mempunyai lima arahan, tiga daripadanya adalah bersyarat, dan dua adalah kemasukan biasa:
Kandungan rentetan pertanyaan disemak untuk kehadiran binaan "?sesuatu" dan jika hasil positif arahan kedua dilaksanakan.
Fail dengan nama yang sama dengan kandungan baris disambungkan, sebagai contoh, jika baris pertanyaan kelihatan seperti ini: "http://maste.ru/razdel/index.shtml?page1", kemudian fail "page1. txt” disambungkan, terletak dalam direktori yang sama dengan fail indeks.
Dilaksanakan jika tiada kandungan seperti "?sesuatu" dalam baris, dan URL kelihatan seperti ini: "http://maste.ru/razdel/index.shtml" atau seperti ini: "http://maste.ru/ razdel/ ", dan meneruskan untuk melaksanakan arahan keempat.
Fail lalai disertakan, yang biasanya mengandungi jadual kandungan bahagian, i.e. pautan ke fail bahagian, yang sepatutnya kelihatan seperti ini: pautan ke halaman No. 1, dsb.
Penyelesaian syarat.
Seterusnya datang bahagian bawah kod html:
... beberapa lagi tag yang menarik dan grafik yang menarik...




Bagaimana ia akan berfungsi?
Fail berikut dibuang ke dalam folder:
index.shtml (jenis terminal);
default.txt (senarai pautan halaman 1 dan te de dan te pe dan hatepe:);
fail page1.txt, ..., page571756.txt sehingga anda bosan dengannya (pada prinsipnya, nama itu boleh apa-apa, perkara utama ialah ia sepadan dengan kandungan selepas “?” dalam pautan yang sepadan).
Jika anda berhasrat untuk menggunakan arahan SSI di dalam fail biasa, maka lebih baik melakukannya dengan cara yang sama.shtm, .shtml, dan jangan lupa untuk membetulkan sambungan dalam kod fail index.shtml.

Di sini! Gunakan untuk kesihatan anda :)


Hampir setiap laman web bukan profesional memulakan kewujudannya sebagai beberapa dokumen HTML yang saling berkaitan dengan rujukan silang. Ramai orang pergi ke keabadian maklumat di negeri ini. Tetapi sesetengah tapak amatur masih menjadi popular, memperoleh lebih banyak kandungan maklumat dan meningkatkan jumlahnya. Kadang-kadang ia berkembang menjadi puluhan atau bahkan ratusan halaman. Tetapi pada dasarnya mereka kekal sebagai satu set dokumen yang dibentuk sekali dan untuk semua.

Mengekalkan dan mengemas kini tapak sedemikian adalah seksaan sebenar bagi pemiliknya. Halaman, sebagai peraturan, terdiri daripada beberapa blok, dan sebahagian daripadanya tidak berubah untuk semua halaman tapak. Ini tajuknya menu navigasi, blok pengiklanan, pengaki halaman. Jika anda ingin menukar sesuatu dalam salah satu blok kekal ini, anda perlu melakukannya secara manual pada setiap halaman tapak. Nikmatnya amat diragui. Selalunya idea yang menarik kekal tidak direalisasikan dengan tepat kerana jumlah suntingan yang besar berpuluh-puluh halaman individu. SSI menjadikan kerja ini lebih mudah. Di samping itu, teknologi SSI membolehkan anda melakukan perkara lain yang pada asasnya mustahil menggunakan HTML. Menggunakan SSI adalah mudah, walaupun pengetahuan bahasa HTML akan banyak membantu. Jika anda tidak takut, teruskan!

Pertama sekali, mari kita tafsir singkatan SSI - Server Side Includes. Dalam bahasa Rusia, "kemasukan sisi pelayan." Semua siap? Kemudian mari kita tamatkan ini... Walaupun lebih baik untuk menjelaskan. SSI ialah arahan yang dimasukkan ke dalam kod HTML yang mengawal pelayan web. Apabila menemui sisipan SSI sedemikian dalam fail, pelayan web melakukan tindakan tertentu. Contohnya, menambahkan kod HTML daripada fail lain, menjana halaman dengan cepat bergantung pada jenis penyemak imbas dan banyak lagi.

Untuk membolehkan pelayan mengetahui bahawa halaman mengandungi sisipan SSI, ia mesti mempunyai sambungan khas: *.shtml atau *.shtm, walaupun ini ditentukan oleh konfigurasi pelayan. Selalunya ia adalah *.shtml yang digunakan. Fakta bahawa pelayan menyokong SSI biasanya ditunjukkan dalam pengehosan atau penerangan tarif. Tetapi tidak salah untuk menyemak. Untuk melakukan ini, kami akan membuat dua fail - pertama. shtml dan second.html. Dalam fail dahulu. shtml salin enam baris:

laquo;-//W3C//DTD HTML 4.01 Peralihan//EN">

Dalam fail kedua. html kami akan menulis hanya satu baris:

Berfungsi!

Sekarang mari kita muat naik halaman ini ke pelayan dan tulis ke bar alamat pelayar "www.your_site/first.shtml". Jika pelayan menyokong SSI, maka selepas membuka fail kami akan melihat mesej "Bekerja!" Jika ia berkata sebaliknya, tahniah juga! SSI berfungsi, tetapi sisipan SSI tidak boleh diproses. Sebagai contoh, anda boleh memasukkan ke dalam kod ruang tambahan atau namakan fail secara berbeza. Kemungkinan besar, pelayan menjalankan sistem Unix, dan untuk itu kedua. html dan Kedua. html - dua perbezaan besar.

Jika tiada apa-apa dipaparkan sama sekali, tetapi sokongan SSI diisytiharkan, maka cara paling mudah ialah menghubungi perkhidmatan tersebut sokongan teknikal. Mungkin sesuatu yang lain digunakan dan bukannya sambungan *.shtml, atau SSI perlu dibenarkan secara eksplisit dalam tetapan tapak. Walau apa pun, pakar pengehosan akan cuba membantu anda.

Jadi, bagaimanakah SSI boleh membantu dengan penyelenggaraan tapak web? Makanan istimewa utama adalah seperti berikut. Kami boleh menyimpan sebarang serpihan yang diulang pada beberapa halaman pada pelayan dalam satu salinan! Untuk melakukan ini, mari letakkan serpihan ini dalam fail yang berasingan, contohnya fragment.html. Fail ini tidak diperlukan,

Dan atribut lain dokumen html "penuh". Hanya ada serpihan kod itu sendiri, yang kemudiannya akan dimasukkan ke tempatnya.

Sekarang, di mana-mana di mana-mana halaman tapak di mana serpihan ini diperlukan, kami menulis sisipan SSI:

Fail mesti berada dalam direktori yang sama dengan fail utama. Jika anda ingin meletakkan semua fail sisipan dalam direktori yang berasingan, anda perlu menggunakan arahan lain yang menentukan laluan penuh kepada relatif fail serpihan direktori semasa:

Oleh itu, dalam fail utama anda boleh meninggalkan hanya "rangka" halaman, sebagai contoh, jadual rangka wayar dan teks utama, dan menambah semua blok kekal melalui sisipan SSI. Halaman penuh akan dijana oleh pelayan web "dengan cepat", seolah-olah dari batu bata individu. Walau bagaimanapun, pengguna akan menerima mesej pada komputer halaman penuh, tanpa sedikit pun tanda penggunaan SSI. Jika anda menukar sesuatu dalam coretan, ia akan muncul secara automatik pada semua halaman tempat ia digunakan.

Adakah anda masih berfikir? Kemudian, terutamanya untuk anda dalam artikel ini, kami akan melihat barang-barang sedemikian yang tidak akan ada keraguan tentang menggunakan SSI.

SSI (Server Side Includes) ialah teknologi yang membolehkan anda "mengumpul" halaman web dengan mudah daripada bahagian, memasukkan hasil pelaksanaan skrip CGI ke dalamnya dan menambah elemen dinamik yang lain pada halaman tersebut.

Apakah fail yang diproses sebagai SSI, cara menambah fail anda

Secara lalai, pelayan web hanya menyemak fail dengan sambungan *.shtml untuk arahan SSI. Sebagai contoh, letakkan arahan SSI dalam fail index.shtml dan ia akan berfungsi serta-merta. Jika terdapat keperluan untuk menyemak fail lain untuk kehadiran SSI, sambungan yang sepadan untuk semakan boleh ditambah dengan meletakkan arahan berikut dalam fail .htaccess:

AddHandler dihuraikan pelayan .ext1

.ext1 berikut adalah lanjutan fail yang perlu diperiksa untuk kehadiran SSI. Ia tidak disyorkan untuk menambah sambungan .html dan .htm, kerana dalam kes ini pelayan akan menyemak semua fail html untuk kehadiran sisipan SSI. Ini boleh membawa kepada beban sia-sia sepenuhnya pada pelayan.

Sekatan

Semua arahan SSI tersedia untuk pengguna mengehos, dengan pengecualian satu sekatan untuk pelanggan yang menggunakan tarif yang tidak menyediakan untuk menjalankan skrip CGI mereka sendiri. Untuk pelanggan ini, skrip berjalan juga tidak tersedia melalui arahan SSI. Iaitu, dalam istilah Apache, pilihan NoExec terpakai kepada mereka.

Bagaimanakah SSI berfungsi dan untuk apa ia digunakan?

Pengguna baru terutamanya boleh menggunakan teknologi SSI untuk dua tujuan: untuk "melekatkan" halaman dari bahagian kod html dan untuk menjalankan skrip untuk meletakkan hasil kerja mereka pada halaman html yang dibuat. Dalam kes pertama, fail yang sepadan dibaca dari cakera pelayan dan dimasukkan ke dalam kod halaman dari mana kod SSI dipanggil. Dalam kes kedua, pelayan web, setelah menemui arahan SSI, menjalankan skrip yang terletak pada cakera dan memasukkan hasil skrip ke halaman akhir.

Mari kita lihat lebih dekat:

    "Menyatukan" halaman daripada bahagian kod html. Ia digunakan untuk mengelakkan penduaan kod html yang sama dalam berbilang halaman web. Sebagai contoh, anda boleh memasukkan keseluruhan reka bentuk dalam kemasukan SSI, yang disertakan dalam fail html tertentu, yang akan mengandungi hanya teks halaman tertentu.

    Mari letakkan "pengepala" halaman web (elemen reka bentuk, menu, pautan yang diperlukan dan elemen lain yang terdapat pada semua halaman), dan dalam fail footer.inc kami akan meletakkan bahagian bawah halaman web (bahagian akhir reka bentuk). Seterusnya, mari buat fail yang dipanggil index.shtml, yang akan kelihatan seperti ini:

    Dan di sini kita akan mempunyai teks utama halaman;

    Diandaikan bahawa kami telah meletakkan kod html dalam fail kemasukan, sekurang-kurangnya seperti tag mula/akhir , , dan sebagainya. Akibatnya, pengguna akan menerima halaman yang mula-mula akan memasukkan kandungan fail header.inc, kemudian perkataan "Dan di sini kita akan mempunyai teks utama halaman" dan kemudian kandungan fail footer.inc.

    Penggunaan SSI ini mudah dari sudut pandangan tidak perlu sentiasa memasukkan semula halaman yang dibuat kod html yang sama, dan juga dari sudut pandangan kemudahan menukar elemen utama tapak - kami menukar kod html di satu tempat, yang segera berubah pada semua halaman di seluruh tapak.

    Menjalankan skrip dan meletakkan hasil kerja mereka pada halaman html yang dibuat. Oleh itu, anda boleh meletakkan hampir semua fungsi pada halaman, contohnya, dalam Perl (atau bahasa pengaturcaraan lain yang disokong oleh pengehosan).

    Sebagai contoh, anda mempunyai kaunter skrip yang menunjukkan bilangan pelawat yang melawat halaman anda dan ia terletak di /cgi-bin/count.pl. Mari masukkan hasil kerja beliau dalam laman web. Untuk melakukan ini, kami akan meletakkan kod SSI berikut dalam kod halaman html:

    Akibatnya, kaunter yang skrip dipaparkan akan diletakkan pada halaman yang pengguna lihat /cgi-bin/count.pl.

    Senarai penuh Anda akan menemui arahan SSI dalam huraian modul Apache mod_include

Lebih banyak contoh penggunaan SSI

Arahan SSI boleh digunakan untuk lebih daripada sekadar menjalankan skrip dan termasuk fail. SSI juga membolehkan anda bekerja dengan pembolehubah persekitaran pelayan web, memanipulasi tarikh, melaksanakan arahan berdasarkan syarat, dan sebagainya. Penerangan yang baik Anda akan menemui penggunaan arahan SSI yang paling popular pada pelayan Forum CIT.

Mendiagnosis ralat semasa menggunakan SSI

Jika, apabila menggunakan arahan SSI pada halaman html anda, anda melihat mesej "", ini menunjukkan ralat berlaku semasa memproses arahan SSI oleh pelayan web.

Sebab yang mungkin berlakunya ralat sedemikian.

#termasuk maya seperti #include fail termasuk teks fail lain dalam fail semasa atau menjalankan skrip cgi. Tidak seperti #include fail boleh mengandungi relatif atau jalan mutlak tanpa nama protokol (HTTP://) dan nama domain (tapak) iaitu, ia tidak boleh menunjuk ke fail di tapak lain (PHP digunakan untuk mengeksport fail dari tapak lain).

Arahan membenarkan laluan seperti:

example/_ssi.html menunjuk ke fail _ssi.html, yang terletak dalam contoh subdirektori direktori semasa.

../_ssi.html menunjuk ke fail _ssi.html yang terletak dalam direktori di mana fail semasa bersarang (induk).

/_ssi.html menunjuk ke fail _ssi.html yang terletak dalam direktori akar tapak (untuk fail ini http://site/_ssi.html).

Sebagai contoh:

Fail #fsize Saiz sisipan fail yang ditentukan. Fail yang saiznya sedang ditentukan mestilah berada di tapak yang sama dengan fail yang mengandungi arahan ini. Selain itu, ia mesti terletak sama ada dalam direktori yang sama atau dalam subdirektori.

Sebagai contoh:

#fsize maya Memasukkan saiz fail yang ditentukan. Tidak seperti #fsize, fail boleh mengandungi laluan relatif atau mutlak tanpa nama protokol (HTTP://) dan nama domain dan dengan itu menghala ke fail dalam direktori lain di tapak yang sama.

Sebagai contoh: Akan memaparkan saiz fail ini: 37K.

Format saiz ditentukan oleh arahan SSI.

#flastmod fail Memasukkan tarikh pengubahsuaian terakhir bagi fail yang ditentukan. Fail yang tarikh pengubahsuaiannya sedang ditentukan mesti terletak di tapak yang sama dengan fail yang mengandungi arahan. Juga, ia mesti terletak sama ada dalam direktori yang sama atau dalam subdirektori.

Sebagai contoh:

#flastmod maya Memasukkan tarikh pengubahsuaian terakhir bagi fail yang ditentukan. Tidak seperti #flastmod, fail boleh mengandungi laluan relatif atau mutlak tanpa nama protokol (HTTP://) dan nama domain dan dengan itu menunjuk ke fail dalam direktori lain di tapak yang sama.

Sebagai contoh: Akan memaparkan tarikh pengubahsuaian terakhir fail ini: 08/10/2014.

Format tarikh ditentukan oleh arahan SSI.

#exec cmd Dilancarkan program luar dan memasukkan hasil pelaksanaannya ke dalam kandungan halaman.

Sebagai contoh,

#execcgi Sama seperti #exec cmd menjalankan skrip cgi dan memasukkan hasil pelaksanaannya ke dalam kandungan halaman.

Sebagai contoh,

#config errmsg mentakrifkan mesej yang dicetak dalam teks apabila ralat berlaku. Memandangkan mesej ditulis terus ke dalam teks halaman, mungkin masuk akal untuk membawanya baris kosong ( ) atau minta pelawat melaporkan ralat kepada pengarang ().

#config timefmt Mentakrifkan format tarikh untuk arahan menggunakan parameter berikut:

Format Arahan SSI #config timefmt
FormatPeneranganContoh
FormatPeneranganContoh
%aNama ringkas hari dalam semingguisn
%ANama penuh hari dalam semingguIsnin
%bSingkatan nama bulanDis
%BNama penuh bulanDisember
%dHari dalam bulan01 (bukan 1)
%DTarikh dalam format "%m/%d/%y"12/31/99
%eHari dalam bulan13
%HJam dalam format 24 jam13
%IJam dalam format 12 jam01
%jHari dalam setahun235
%mNombor bulan01
%Mminit03
%pPG/PM (sebelum tengah hari/petang)A.M.
%rMasa dalam format "I:M:S p"11:35:46 PTG
%SDetik34
%sMasa dalam saat sejak 01/01/1970957228726
%TMasa dalam format "%H:%M:%S"14:05:34
%UMinggu dalam tahun16
%wNombor hari dalam minggu4
%yTahun dalam format YY99
%YTahun dalam format YYYY1999
%ZZon masaMSK

Akibatnya, pasukan yang tidak bersedia memberi keluaran seterusnya: 08/10/2014

Dan arahan yang sama, selepas arahan SSI , akan dikeluarkan: 08/10/2014

#config sizefmt mentakrifkan format saiz untuk arahan. mengkonfigurasi untuk memaparkan saiz fail dalam kilobait (37K), dan dalam bait (37,782)

#printenv Seperti arahan DOS SET lama yang baik, ia memaparkan nilai semasa pembolehubah persekitaran, seperti:

HTTP_USER_AGENT nama pelayar yang digunakan oleh pelawat.

REMOTE_ADDR Alamat IP pelawat.

REMOTE_HOST alamat pelawat dalam bentuk biasa.

SERVER_ADDR Alamat IP tapak.

NAMA PELAYAN alamat pelayan.

CHARSET_HTTP_METHOD protokol ((tiada))

REQUEST_METHOD kaedah permintaan halaman (GET)

HTTP_HOST nama tapak (tapak)

REQUEST_URI keseluruhan baris permintaan, tanpa menyatakan protokol dan nama tapak (/docs/ssi.html)

QUERY_STRING semua yang ada dalam bar alamat selepas itu tanda soal(biasanya ini adalah parameter borang) Cuba panggil halaman ini dengan beberapa parameter selepas tanda soal dan anda akan melihatnya di sini ()

SCRIPT_NAME laluan penuh ke halaman dari akar tapak (/docs/ssi.html)..html).

DOCUMENT_NAME hanya nama fail. (ssi.html)

HTTP_REFERER halaman dari mana anda datang ke ini ((tiada))

SCRIPT_FILENAME laluan penuh ke halaman pada pelayan (/home/users/s/supervisork/domains/site/docs/ssi.html)

SERVER_SOFTWARE nama pelayan dan modul yang dipasang.

SERVER_ADMIN – alamat surat menyurat pemilik pelayan yang dinyatakan semasa pemasangan.

DATE_LOCAL Masa dan tarikh hari ini dalam zon waktu anda.

DATE_GMT sama, tetapi menurut Greenwich.

LAST_MODIFIED tarikh dan masa kemaskini terakhir muka surat.

Perintah aplikasi praktikal hanya mempunyai halaman untuk nyahpepijat, yang sangat penting, memandangkan hakikat bahawa setiap pelayan mempunyai set pembolehubahnya sendiri. Inilah yang berlaku akibat penggunaannya di tapak:

Turun taraf-1..76.94.14 HTTP_X_PROTOCOL=HTTP/1.1 HTTP_X_SERVER_IP=81.177.135.112 HTTP_X_FORWARDED_FOR=144.76.94.14 HTTP_X_FORWARDED_PROTOCOL=http HTTP_CONNECTIONSERVENT_CLUB5 1; +http://www. google. com/bot..177.135.112 SERVER_PORT=80 REMOTE_ADDR=144.76.94..ru SCRIPT_FILENAME=/home/users/s/supervisork/domains/site/docs/ssi.html REMOTE_PORT=32920 GATECWAY_INTERFACE =HTTP /1.0 REQUEST_METHOD=DAPATKAN QUERY_STRING= REQUEST_URI=/docs/ssi.html SCRIPT_NAME=/docs/ssi.html DATE_LOCAL=03/17/2019 DATE_GMT=03/17/2019 LAST_MODIFIED=08/40s DOCUMENT=08/40s /ssi.html USER_ NAME =mengawasi DOCUMENT_NAME=ssi.html WORDS= KEYW= DESCRIP= TITL= HEAD= ROB=index, ikut BROWSER=Mozilla/5.0 (serasi; Googlebot/2.1; +http://www.google.com /bot.html) DIR =PER=YA

Walau bagaimanapun, pembolehubah itu sendiri sering digunakan. Contohnya, dalam arahan SSI #echo var.

#echo var Digunakan untuk memaparkan nilai pembolehubah yang ditentukan sebagai parameter.

Sebagai contoh:

IP anda pelayar anda pelayan saya Anda datang dari halaman Anda berada di halaman http://

Mengeluarkan teks berikut:

IP anda 144.76.94.14 Penyemak imbas anda Mozilla/5.0 (serasi; Googlebot/2.1; +http://www.google.com/bot.html) Pelayan saya webdesign.site3k..html

Dalam versi SSI yang lebih baharu, arahan gema SSI menggunakan pengekodan entiti secara lalai dan telah menambah parameter pengekodan. Pengekodan mesti dinyatakan SEBELUM parameter var. Nilai pengekodan yang mungkin:

entiti- Penukaran (lalai) akan dilakukan aksara HTML khas pada dasarnya, teks Rusia dalam pengekodan Windows-1252 akan bertukar menjadi krakozyabry (tujuan daripada transformasi ini tidak jelas);

url- penukaran melarikan diri akan dilakukan, semua aksara abjad Inggeris akan mengambil bentuk %nn, dengan nn ialah kod aksara dalam pengekodan perenambelasan, yang akan membolehkannya digunakan dalam rentetan URL;

tiada- tiada transformasi akan dilakukan (seperti sebelum ini, dengan satu-satunya perbezaan entiti HTML yang dikodkan sebelum ini tidak akan dikodkan dan kurungan sudut dan ampersand boleh dimasukkan ke dalam pembolehubah SSI).

Contoh:

#tetapkan nilai var Menetapkan nilai pembolehubah jika tiada pembolehubah dicipta. Format Perintah set var=" VARIABLE_NAME " value=" ITS_VALUE !}"

Sebagai contoh, kod ini:

Nilai pembolehubah SERVER_NAME=" " » Tukar nilai: Sekarang nilai pembolehubah SERVER_NAME=" »

Akan mengeluarkan baris berikut:

Nilai pembolehubah SERVER_NAME = "tapak" Mari tukar nilai: Sekarang nilai pembolehubah SERVER_NAME = "discoverer.by.ru"

Sudah tentu, gantikan yang standard pembolehubah persekitaran Ia mungkin tidak masuk akal sama sekali, tetapi mudah untuk menetapkan pembolehubah anda sendiri, sebagai contoh:

Untuk menggunakan arahan di tempat yang betul pada halaman

Ia kelihatan seperti ini: Ini adalah bantuan visual yang paling banyak untuk SSI(Nota, Simbol khas V versi lama SSI akan dikod semula untuk muncul pada halaman dan bukannya berfungsi seperti yang diharapkan.

Sememangnya, anda perlu menentukan pembolehubah sebelum menggunakannya pada halaman.

Keupayaan untuk bekerja dengan pembolehubah adalah salah satu daripada ciri yang paling penting SSI. Tanpa itu, teknologi ini tidak akan begitu meluas.

Operasi dan pengendali SSI.

SSI tidak menyokong pengiraan matematik Dan operasi rentetan. Walau bagaimanapun, teknologi SSI menyokong penggantian, yang boleh dianggap sebagai analog penggabungan. Penggantian membolehkan anda menggunakan pembolehubah persekitaran sebagai parameter arahan SSI dan menggabungkan nilai pembolehubah dan rentetan (concatenate). Apabila menggantikan, pembolehubah disertakan dalam pendakap kerinting " {} ", dan didahului dengan tanda dolar " $ " (kadang-kadang kurungan boleh ditinggalkan).

Sebagai contoh:

Meletakkan laluan penuh dan nama halaman ini ke dalam pembolehubah NEW_VAR dan memaparkannya dalam teks:

Http://site/docs/ssi.html

Jika perlu, sertakan tanda dolar, garis miring, pendakap kerinting dan tanda petikan, mereka didahului dengan garis miring:

\$ \/ \" \{ \}

#if, #elif, #else dan #endif – Kenyataan bersyarat. Membolehkan anda melaksanakan kod atau memaparkan teks pada halaman bergantung pada hasilnya perbandingan logik. Kod yang tidak memenuhi syarat tidak akan muncul dalam apa-apa cara, walaupun semasa melihat "sumber".

Format operator:

Kod HTML yang akan dikeluarkan jika FIRST_CONDITION adalah benar Kod HTML yang akan dikeluarkan jika FIRST_CONDITION adalah palsu dan SECOND_CONDITION adalah benar Kod HTML yang akan dikeluarkan jika semua syarat adalah palsu

Syarat ialah sama ada rentetan yang benar jika ia tidak kosong, atau satu set pengendali perbandingan rentetan. Operator boleh:

    Kesaksamaan = Ketaksamaan != Kurang < Kurang daripada atau sama dengan <= Lagi > Lebih besar daripada atau sama dengan >= Penafian (tidak benar) !

Jika baris kedua disertakan dengan garis miring ("/"), ia adalah ungkapan biasa. Sebagai contoh, syarat adalah benar jika baris pertama mengandungi sekurang-kurangnya satu kejadian baris kedua.

Anda boleh menggabungkan berbilang operator perbandingan menggunakan operator && (“logik DAN”) dan || (“logik ATAU”). Tanda kurung digunakan untuk mengelompokkan keadaan. Untuk memasukkan pembolehubah dalam keadaan, ia didahului oleh tanda dolar. Sebagai contoh:

Halaman dimintapenyemak imbas Operapelayar Internet Microsoft PenjelajahPelayar Netscape Navigatorrobot carian

Keputusan:

Halaman diminta oleh pelayar Netscape Navigator

Perhatian: Mana-mana arahan SSI mesti bermula dengan aksara (akhir komen). Dalam kes ini, antara penghujung arahan SSI dan tanda sempang penghujung ulasan mesti ada, menurut sekurang-kurangnya, satu ruang jika tidak pelayan mungkin tidak mengenali arahan dengan betul, tersalah anggap tanda sempang dan kurungan sudut sebagai penghujung arahan.

Ciri-ciri skrip SSI

  • SSI Server Side Includes diterjemahkan sebagai kemasukan sisi pelayan. Nama itu sendiri mencerminkan ciri utama SSI:
  • Arahan SSI tidak berfungsi pada komputer tempatan, ia hanya diproses oleh pelayan WEB dan rupa halaman itu pada akhirnya hanya dapat dilihat dengan meletakkannya pada pelayan dan memuatkannya dari sana dalam penyemak imbas. Sebelum mengeluarkan halaman, pelayan membacanya baris demi baris, dan, mencari arahan SSI, memprosesnya, sebaliknya memasukkan hasil pelaksanaan. Arahan itu sendiri tidak disimpan pada halaman yang diterima oleh pelawat.
  • SSI tidak boleh memasukkan fail daripada domain lain.
  • SSI tidak disokong oleh semua pelayan dan pemilik pelayan mesti menunjukkan sokongannya dalam penerangan hos.
  • SSI tidak diproses dalam semua fail. Dalam banyak fail, kandungannya tidak dianalisis untuk kandungan arahan SSI; ini dilakukan supaya tidak memperlahankan pelayan dengan pemprosesan yang tidak perlu. Jenis fail yang diproses dinyatakan dalam penerangan hos. Anda juga boleh melihatnya dalam httpd.conf atau srm.conf (jika anda mempunyai akses kepadanya). Baris berikut menunjukkan analisis arahan SSI: AddType text/html .shtml AddHandler server-parsed .shtml Biasanya ini ialah fail HTM, HTML dan SHTML.
  • Kadangkala memproses arahan SSI memerlukan meletakkan fail .htaccess (nama bermula dengan titik) dalam akar tapak, dengan arahan seperti AddHandler server-parsed .shtml AddHandler server-parsed .html Ini boleh satu-satunya cara menjejaskan pengendalian pelayan jika anda bukan pentadbirnya.
  • Kadangkala pentadbir yang tidak baik melarang pelaksanaan skrip PHP dalam arahan SSI, dan bukannya hasil pelaksanaan skrip, mesej seperti
    ""
    Dalam kes ini, anda perlu menambah arahan Options + Includes pada .htaccess Maklumat lanjut mengenai fail .htaccess, anda boleh melihat pada "Menyediakan fail .htaccess"
  • SSI tidak diproses dalam semua direktori. Untuk membolehkan direktori memproses arahan SSI, direktori mesti diterangkan dalam fail access.conf sebagai Indeks Pilihan Termasuk (atau Termasuk Pilihan), subdirektori mewarisi pilihan dan tidak memerlukan kemasukan berasingan. Tidak semua orang mempunyai akses kepada fail ini, walau bagaimanapun, terdapat peraturan umum tidak bertulis: pada banyak hos kandungan dibahagikan dengan 2 direktori akar: cgi-bin dan WWW. Dalam fail dalam direktori cgi-bin, tiada fail (biasanya) disemak untuk arahan SSI dan tiada fail (malah yang disertakan oleh ) dipaparkan dalam penyemak imbas. Oleh itu, fail yang merupakan serpihan halaman dan disertakan di dalamnya oleh arahan SSI TIDAK sepatutnya terletak dalam direktori cgi-bin cgi-bin hanya boleh mengandungi skrip cgi, kerana ia tidak disertakan dalam halaman secara langsung (hanya keputusan pelaksanaan mereka disertakan).
  • Arahan SSI diproses bukan sahaja dalam fail yang diminta oleh pelawat, tetapi juga dalam serpihan yang disertakan di dalamnya, jika ia mempunyai pelanjutan yang memeriksa kehadiran arahan SSI dibenarkan. Ini mungkin terpakai dalam pelbagai cara, khususnya, untuk mengendalikan pembolehubah yang ditetapkan pada halaman yang merangkumi serpihan ini.
  • Biasanya, sebarang fail dalam direktori WWW boleh disertakan menggunakan SSI termasuk arahan, jadi serpihan itu sendiri boleh disimpan dalam fail dengan sebarang sambungan. Walau bagaimanapun, sila ambil perhatian bahawa fail HTM dan HTML diindeks enjin carian, yang bermaksud mereka boleh menghantar pelawat ke serpihan halaman yang tidak lengkap (ini, sudah tentu, tidak mungkin, kerana untuk ini mesti ada pautan diindeks ke serpihan ini), yang, seterusnya, boleh mengecewakannya dan menolaknya daripada tapak. Terdapat beberapa cara untuk mengelakkan rasa ingin tahu yang menjengkelkan ini:

Skop SSI.

Biasanya, SSI digunakan di tempat yang sama di mana Bingkai, Objek, Skrip src=, dll., contohnya, untuk memasukkan serpihan berulang (menu, kod sepanduk, pengepala) dalam halaman WEB. Walau bagaimanapun, mekanisme pengaktifan adalah berbeza sama sekali. Jika dalam Bingkai, Objek, Skrip src=, dsb. fail yang disertakan hanya dikeluarkan oleh pelayan dan telah dimasukkan ke tempatnya oleh ejen pengguna (pelayar), maka dalam kes SSI penyemak imbas telah menerima halaman tersebut. borang siap. Pendayaan berlaku secara langsung pada pelayan, dan ini mewujudkan perbezaan berikut:

  • Apabila anda mendayakan jenis Bingkai, Objek, Skrip src=, dsb., pelawat boleh mengetahui kod sumber halaman, tetapi apabila SSI didayakan, pelawat tidak boleh. Penyembunyian kod sumber semoga bermanfaat bagi penulis.
  • Apabila menyertakan jenis Bingkai, Objek, Skrip src=, dsb., kesempurnaan logik objek yang disertakan diperlukan, tetapi dengan pembenaman SSI ia tidak. Ini juga boleh menjadi mudah, kerana ia membolehkan anda membahagikan halaman kepada serpihan sewenang-wenangnya dan memisahkannya ke dalam fail yang berasingan. Kuantiti yang besar tempat biasa.
  • Apabila menyertakan jenis Bingkai, Objek, dsb., objek yang terletak dalam serpihan yang disertakan boleh dirujuk sebagai FRAGMENT_NAME.OBJECT_NAME dan objek yang dibenamkan oleh arahan SSI sebagai kepada unsur biasa halaman lebih mudah dengan cara ini.
  • Apabila mendayakan jenis Bingkai, Objek, dsb., anda boleh membenarkan pengguna menukar kandungan objek, tetapi dengan suntikan SSI, ini tidak berlaku. Ini mengecilkan skop SSI dengan ketara.
  • Apabila anda mendayakan jenis Bingkai, Objek, Skrip src=, dsb., pemprosesan syarat dan arahan lain berlaku pada komputer pelawat dan dengan SSI pada pelayan. Oleh itu, teknologi SSI memperlahankan pemuatan: keuntungan dicapai hanya jika serpihan besar sama ada disertakan atau tidak disertakan, bergantung pada keadaan tertentu (kemudian, walaupun beban pada pemproses pelayan meningkat, beban pada talian komunikasi berkurangan).
  • Memandangkan SSI dilaksanakan oleh pelayan, penampilan sebenar halaman hanya boleh dilihat di sana, yang tidak sesuai. Program yang membolehkan anda menerima SSI untuk komputer tempatan, jangan berikan pilihan yang sama, sekurang-kurangnya disebabkan perbezaan dalam jenis pembolehubah DOCUMENT_URI. Dan dengan mengambil kira tetapan segera setiap pelayan tertentu, perbezaannya boleh menjadi kepentingan asas.
  • Apabila mendayakan jenis Bingkai, Objek, Skrip src=, dsb., objek yang disertakan dimuatkan sekali sahaja dan, pada kali berikutnya ia didayakan, diambil daripada cache. Dengan suntikan SSI, serpihan dimuatkan dengan setiap satu halaman baharu, KETARA memperlahankan pemuatan: Ini sudah sangat teruk.
  • Apabila anda mendayakan jenis Bingkai, Objek, Skrip src=, dsb., menu terletak dalam satu fail, dan dengan SSI, ia dibenamkan dalam setiap halaman, dengan itu menyebarkan nilai rujukan dalaman, dan merosakkan keseluruhannya apabila anda perlukan. untuk menumpukan semua berat rujukan pada halaman utama.

Perkara yang perlu digunakan: Bingkai, Objek, Skrip src= atau SSI ialah perkara peribadi untuk semua orang.

Sertakan fail kaki.htm:

Perbezaan praktikal antara halaman yang sama yang dibina menggunakan teknologi yang berbeza hanyalah setiap halaman objek teknologi IFRAME kelihatan lebih lengkap dan bebas sepenuhnya. Ini sedikit meningkatkan masa memuatkan halaman pertama, tetapi disebabkan caching, serpihan berulang tidak perlu dimuatkan daripada muka surat seterusnya dan pemuatan selanjutnya adalah jauh lebih pantas (untuk mendapatkan maklumat lanjut tentang kelebihan Frame, lihat "Jika anda tidak menyukai bingkai, maka anda tidak tahu cara menyediakannya"). Gabungan dua teknologi pensuisan memberikan hasil kualiti tertinggi. Ia digunakan pada semua tapak profesional dan, jika Bingkai dan Objek mungkin tidak bertemu di suatu tempat, maka sekurang-kurangnya Skrip src= dan (kemasukan kod yang sama yang terkandung dalam fail berasingan dan dimuatkan sekali sahaja) digunakan di mana-mana sahaja.

Penggunaan IFRAME tidak boleh menggantikan SSI sepenuhnya, kerana SSI membenarkan anda bukan sahaja memuatkan serpihan mengikut keadaan (yang boleh diselesaikan dengan skrip), tetapi juga, seperti yang ditunjukkan dalam contoh, untuk menghantar sebarang parameter kepada mereka melalui pembolehubah. Tanpa SSI ini hanya boleh dilakukan kaedah POST atau melalui HTTP_REFERER (sambungan nama fail, selepas tanda soal), untuk pemprosesan selanjutnya oleh beberapa skrip. Tetapi keupayaan penghantaran sedemikian tidak boleh dibandingkan dengan keupayaan menghantar nilai pembolehubah SSI. Oleh itu, SSI mungkin diperlukan walaupun pada halaman berasaskan bingkai daripada lebih banyak alat tersedia untuk kami, lebih baik dan lebih cepat hasilnya.

Saya ingin memberitahu anda tentang asas teknologi sebelah pelayan termasuk atau ssi.
ssi diterjemahkan kepada "kemasukan sisi pelayan". Teknologi ini membantu menjimatkan banyak masa semasa membuat tapak web dan memuat naiknya ke pelayan. Secara umum, ssi direka bentuk untuk menjadikan kerja juruweb semudah mungkin.

Di sini, sebagai contoh, adalah situasi yang sangat nyata:
Anda mempunyai tapak, yang, sudah tentu, tidak menggunakan ssi, dengan bilangan halaman yang hampir dengan:, mari ambil sekurang-kurangnya 50 halaman. Jadi, pada setiap halaman anda, sebagai juruweb yang baik yang mengambil berat tentang pelawatnya, telah meletakkan menu teks. Dan tiba-tiba, atas sebab tertentu, nama beberapa bahagian berubah, atau mungkin anda ingin menambah bahagian baharu. Apa sekarang untuk membuka semula semua lima puluh muka surat dan menulis semula semuanya lagi dan lagi?! Dalam kes kami, ini, malangnya, satu-satunya penyelesaian, walaupun beberapa editor yang baik akan dapat meringankan beban yang membebankan ini (dan bagaimana untuk menjadikannya lebih mudah!, tapak rumah, sebagai contoh).

Jadi, anda tidak akan menghadapi masalah sedemikian jika anda menggunakan teknologi ssi. Biar saya terangkan: jika bukannya menu teks pada semua halaman sesuatu seperti

Dan dalam fail "(www)/ssi/menu_txt.html" akan terdapat kandungan menu ini, kemudian untuk menambah atau menukar bahagian anda hanya perlu menukar kandungan hanya satu fail menu_txt.html. Seperti yang anda mungkin sudah meneka, semua halaman bukannya "ulasan"

Kod daripada menu_txt.html akan dimasukkan.

Sintaks arahan ssi.

Sintaks arahan ssi ialah:
Semua arahan disertakan dalam ulasan

Perbezaan utama antara arahan ssi dan ulasan ialah simbol "#" serta-merta(!) selepas "

dan tiada yang lain!

Berikut ialah senarai beberapa "fungsi" ssi (ia ditulis sejurus selepas simbol "#")

termasuk

Termasuk teks (kod, kandungan) dokumen/fail yang ditentukan dalam dokumen ini. Lokasi fail pada pelayan ditunjukkan menggunakan atribut berikut:

fail - anda mesti menentukan laluan relatif kepada dokumen ini, iaitu, dokumen/fail yang disertakan mesti terletak sama ada dalam direktori yang sama dengan dokumen ini, atau dalam direktori yang lebih rendah/lebih tinggi (some_catalog/, ../some_catalog).
maya - anda boleh menentukan kedua-dua saudara (seperti dalam kes fail) dan laluan mutlak (mungkin mengandungi /some_catolog atau ../some_catalog).

include membolehkan anda memasukkan hasil skrip cgi, serta mengaksesnya dengan rentetan pertanyaan yang diberikan. Sebagai contoh,

Menetapkan nilai pembolehubah. Pembolehubah diisytiharkan menggunakan atribut var, dan nilainya ditentukan menggunakan atribut nilai.

pembolehubah a akan mempunyai pembolehubah nilai.
Atau anda boleh melakukan ini:

Pembolehubah a akan sama dengan varia$(c)
Untuk menggantikan pembolehubah, anda perlu melampirkannya dalam pendakap kerinting dan meletakkan $ di hadapan semuanya. Jika anda mahu tanda dolar ($) dipaparkan hanya sebagai simbol dan bukan untuk menunjukkan pembolehubah, kemudian letakkan tanda miring () di hadapannya

bergema

mencetak nilai pembolehubah yang dinyatakan dalam atribut var.

iaitu, bukannya kod ini, nilai pembolehubah a dimasukkan

Contoh penggunaan ssi.

Tajuk:<!--#echo var="title" --> "> , html"> !}

Badan dokumen



Seperti yang anda lihat dari contoh ini, menggunakan ssi tidak begitu sukar, dan lebih-lebih lagi, ia sangat berguna.

Aspek teknikal penggunaan ssi.

Adalah wajar untuk mengatakan beberapa perkataan tentang sokongan teknikal yang diperlukan untuk menggunakan ssi. Jika anda hanya mencipta fail pada cakera tempatan anda dengan arahan ssi yang betul dan membukanya dalam penyemak imbas anda, maka tiada kemasukan akan berlaku, kerana semua ungkapan adalah sepertiuntuk penyemak imbas mereka adalah komen tulen. Apa yang dipanggil "kemasukan" berlaku pada peringkat pemprosesan dokumen oleh pelayan, sebelum menghantarnya kepada pengguna. Dalam kes kami, tiada peringkat sedemikian (pemprosesan dokumen oleh pelayan) sama sekali. Jadi, untuk anda merasai sepenuhnya semua manfaat ssi pada komputer tempatan anda, anda memerlukan pelayan web "rumah".
Dan inilah satu lagi perkara: tidak setiap penyedia pengehosan menyokong ssi. Ini biasanya masalah dengan pengehosan percuma. Tetapi sesetengah daripada mereka, walaupun mereka membenarkan anda menggunakan ssi, memerlukan beberapa jenis pembayaran untuk ini, sebagai contoh, meletakkan pengiklanan di tapak.