HTTP ÓÅÒ×ÅÒ Apache ×ÅÒÓÉÉ 2.2
üÔÏÔ ÄÏËÕÍÅÎÔ ÏÐÉÓÙ×ÁÅÔ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÂÒÁÂÏÔÞÉËÏ× (handlers) × Apache.
óÍÏÔÒÉÔÅ ÔÁËÖÅ ÍÏÄÕÌÉ | óÍÏÔÒÉÔÅ ÔÁËÖÅ ÄÉÒÅËÔÉ×Ù |
---|---|
ïÂÒÁÂÏÔÞÉË Ñ×ÌÑÅÔÓÑ ×ÎÕÔÒÅÎÎÅÊ ÓÔÒÕËÔÕÒÏÊ Apache, ËÏÔÏÒÁÑ ÚÁÄÁ£Ô ÐÏ×ÅÄÅÎÉÅ ÓÅÒ×ÅÒÁ ÐÒÉ ÏÂÒÁÂÏÔËÅ ÚÁÐÒÁÛÉ×ÁÅÍÏÇÏ ÆÁÊÌÁ. ëÁË ÐÒÁ×ÉÌÏ, ËÁÖÄÏÍÕ ÆÁÊÌÕ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ Ó×ÏÊ ×ÎÕÔÒÅÎÎÉÊ ÏÂÒÁÂÏÔÞÉË, ËÏÔÏÒÙÊ ÎÁÚÎÁÞÁÅÔÓÑ ÓÅÒ×ÅÒÏÍ ÉÓÈÏÄÑ ÉÚ ÔÉÐÁ ÆÁÊÌÁ. ïÂÙÞÎÏ ÆÁÊÌÙ ÐÒÏÓÔÏ ×ÏÚ×ÒÁÝÁÀÔÓÑ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÎÏ ÎÅËÏÔÏÒÙÅ ÔÉÐÙ ÆÁÊÌÏ× ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ (handled) ÓÅÒ×ÅÒÏÍ.
÷ Apache 1.1 ÄÏÂÁ×ÌÅÎÁ ×ÏÚÍÏÖÎÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÒÁÂÏÔÞÉËÉ Ñ×ÎÏ. ðÒÉÞ£Í ÏÂÒÁÂÏÔËÁ ÆÁÊÌÏ× ÍÏÖÅÔ ÏÓÎÏ×Ù×ÁÔØÓÑ ÔÅÐÅÒØ ÎÅ ÔÏÌØËÏ ÎÁ ÉÈ ÔÉÐÅ, ÎÏ É ÎÁ ÒÁÓÛÉÒÅÎÉÉ ÆÁÊÌÏ× ÉÌÉ ÉÈ ÍÅÓÔÏÎÁÈÏÖÄÅÎÉÉ. üÔÏ ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ ÎÁÉÂÏÌÅÅ ÕÄÁÞÎÙÍ ÒÅÛÅÎÉÅÍ, ×Ï-ÐÅÒ×ÙÈ ÐÏÔÏÍÕ, ÞÔÏ ÜÔÏ ÒÅÛÅÎÉÅ ÜÌÅÇÁÎÔÎÏ, Á ×Ï-×ÔÏÒÙÈ, ÜÔÏ ÐÏÚ×ÏÌÑÅÔ ÁÓÓÏÃÉÉÒÏ×ÁÔØ Ó ÆÁÊÌÏÍ ËÁË ÔÉÐ, ÔÁË É ÏÂÒÁÂÏÔÞÉË. (óÍ. ÔÁËÖÅ «æÁÊÌÙ Ó ÎÅÓËÏÌØËÉÍÉ ÒÁÓÛÉÒÅÎÉÑÍÉ»)
ïÂÒÁÂÏÔÞÉËÉ ÍÏÇÕÔ ÐÒÅÄÓÔÁ×ÌÑÔØ ÉÚ ÓÅÂÑ ËÁË
×ËÏÍÐÉÌÉÒÏ×ÁÎÎÙÅ × ÓÅÒ×ÅÒ (ÉÌÉ ÐÏÄËÌÀÞÁÅÍÙÅ Ó ÐÏÍÏÝØÀ
ÍÏÄÕÌÅÊ) ÆÕÎËÃÉÉ, ÉÌÉ ÏÎÉ ÍÏÇÕÔ ÂÙÔØ ÄÏÂÁ×ÌÅÎÙ Ó ÐÏÍÏÝØÀ
ÄÉÒÅËÔÉ×Ù Action
.
÷ ÓÔÁÎÄÁÒÔÎÏÍ ÄÉÓÔÒÉÂÕÔÉ×Å ÓÅÒ×ÅÒÁ ÉÍÅÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ×ÓÔÒÏÅÎÎÙÅ
ÏÂÒÁÂÏÔÞÉËÉ:
default_handler()
, ËÏÔÏÒÁÑ Ñ×ÌÑÅÔÓÑ ÏÂÒÁÂÏÔÞÉËÏÍ
ÐÏ-ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÓÔÁÔÉÞÅÓËÉÈ ÆÁÊÌÏ×. (ÑÄÒÏ)mod_asis
)mod_cgi
)mod_imagemap
)mod_info
)mod_status
)mod_negotiation
)ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÓÌÅÄÕÀÝÉÈ ÄÉÒÅËÔÉ×, ËÁÖÄÙÊ ÚÁÐÒÏÓ ÆÁÊÌÁ
Ó ÒÁÓÛÉÒÅÎÉÅÍ html
ÂÕÄÅÔ ÚÁÐÕÓËÁÔØ ÎÁ ×ÙÐÏÌÎÅÎÉÅ
CGI-ÓËÒÉÐÔ footer.pl
ÄÌÑ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÊ ÏÂÒÁÂÏÔËÉ
ÚÁÐÒÁÛÉ×ÁÅÍÏÇÏ ÆÁÊÌÁ.
Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html
÷ ÜÔÏÍ ÓÌÕÞÁÅÔ CGI-ÓËÒÉÐÔ ÏÔ×ÅÔÓÔ×ÅÎÅÎ ÚÁ ÔÏ, ÞÔÏÂÙ
×ÙÓÌÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÀ ÚÁÐÒÏÛÅÎÎÙÊ ÄÏËÕÍÅÎÔ (ÎÁ ËÏÔÏÒÙÊ ÕËÁÚÙ×ÁÅÔ
ÐÅÒÅÍÅÎÎÁÑ ÏËÒÕÖÅÎÉÑ PATH_TRANSLATED
), ÓÄÅÌÁ×
× Î£Í ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ ×ÓÅ ÎÅÏÂÈÏÄÉÍÙÅ ÉÚÍÅÎÅÎÉÑ.
óÌÅÄÕÀÝÉÅ ÎÅÓËÏÌØËÏ ÄÉÒÅËÔÉ× ÚÁÓÔÁ×ÑÔ ×ÙÐÏÌÎÑÔØÓÑ ÏÂÒÁÂÏÔÞÉË
send-as-is
, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÆÁÊÌÏ×, ÓÏÄÅÒÖÁÝÉÈ
Ó×ÏÉ ÓÏÂÓÔ×ÅÎÎÙÅ HTTP-ÚÁÇÏÌÏ×ËÉ. ÷ÓÅ ÆÁÊÌÙ × ËÁÔÁÌÏÇÅ
/web/htdocs/asis/
ÂÕÄÕÔ ÏÂÒÁÂÁÔÙ×ÁÔØÓÑ ÏÂÒÁÂÏÔÞÉËÏÍ
send-as-is
, ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÉÈ ÒÁÓÛÉÒÅÎÉÑ.
<Directory /web/htdocs/asis>
SetHandler send-as-is
</Directory>
äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÍÏÖÎÏ ÂÙÌÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÒÁÂÏÔÞÉËÉ, ×
Apache API ÂÙÌÉ ×ÎÅÓÅÎÙ
ÎÅËÏÔÏÒÙÅ ÄÏÐÏÌÎÅÎÉÑ. ÷ ÞÁÓÔÎÏÓÔÉ, × ÓÔÒÕËÔÕÒÕ request_rec
ÂÙÌÏ ÄÏÂÁ×ÌÅÎÏ ÎÏ×ÏÅ ÐÏÌÅ:
char *handler
åÓÌÉ ×Ù ÈÏÔÉÔÅ × Ó×Ï£Í ÍÏÄÕÌÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÒÁÂÏÔÞÉË,
ÔÏ ×Ó£, ÞÔÏ ×ÁÍ ÎÁÄÏ ÓÄÅÌÁÔØ, ÜÔÏ ÚÁÐÉÓÁÔØ × r->handler
ÉÍÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÏÂÒÁÂÏÔÞÉËÁ, ÐÒÉÞ£Í ÓÄÅÌÁÔØ ÜÔÏ ÎÅÏÂÈÏÄÉÍÏ
ÐÅÒÅÄ ÔÅÍ, ËÁË ÚÁÐÒÏÓ ÄÏÈÏÄÉÔ ÄÏ ÓÔÁÄÉÉ invoke_handler
.
ïÂÒÁÂÏÔÞÉËÉ ÒÅÁÌÉÚÕÀÔÓÑ ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É ÒÁÎØÛÅ,
ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÌÉÛØ ÔÏÇÏ, ÞÔÏ ÔÅÐÅÒØ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÙ×ÁÔØ
ÉÍÑ ÏÂÒÁÂÏÔÞÉËÁ, Á ÎÅ ÔÉÐ ÓÏÄÅÒÖÉÍÏÇÏ (content type).
èÏÔÑ ÜÔÏ É ÎÅ Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ, ÎÏ ÓÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ
ÐÒÁ×ÉÌÁ ÉÍÅÎÏ×ÁÎÉÑ ÏÂÒÁÂÏÔÞÉËÏ× - ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ
ÓÌÏ×Á, ÒÁÚÄÅÌ£ÎÎÙÅ ÄÅÆÉÓÏÍ É ÎÅ ÓÏÄÅÒÖÁÝÉÅ ËÏÓÙÈ ÞÅÒÔ - ÜÔÏ
ÐÏÚ×ÏÌÉÔ ÎÅ ÐÅÒÅÓÅËÁÔØÓÑ Ó ÐÒÏÓÔÒÁÎÓÔ×ÏÍ ÉͣΠÍÅÄÉÁ-ÔÉÐÏ× (media type).