mod_isapi Windows¿ë ¾ÆÆÄÄ¡¿¡¼­ ISAPI Extension »ç¿ë Base mod_isapi.c isapi_module Win32 only

ÀÌ ¸ðµâÀº Internet Server extension API¸¦ ±¸ÇöÇÑ´Ù. ±×·¡¼­ Á¦¾àÀº ÀÖÁö¸¸ Windows¿ë ¾ÆÆÄÄ¡¿¡¼­ Internet Server extensionÀ» (Áï, ISAPI .dll ¸ðµâ) »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ISAPI extension ¸ðµâ(.dll ÆÄÀÏ)Àº Á¦»ïÀÚ°¡ ÀÛ¼ºÇÑ´Ù. Apache GroupÀÌ ÀÌµé ¸ðµâÀ» ¸¸µéÁö ¾Ê¾ÒÀ¸¸ç, Áö¿øµµ ÇÏÁö ¾Ê´Â´Ù. ISAPI extension »ç¿ë¿¡ °üÇÑ ¹®Á¦´Â ISAPI Á¦ÀÛÀÚ¿¡°Ô Á÷Á¢ ¿¬¶ôÇÏ±æ ¹Ù¶õ´Ù. Á¦¹ß ÀÌ·± ¹®Á¦¸¦ ¾ÆÆÄÄ¡ ¸ÞÀϸµ¸®½ºÆ®³ª ¹ö±×º¸°í ÆäÀÌÁö¿¡ ¿Ã¸®Áö ¸¶¶ó.

»ç¿ë¹ý

¼­¹ö¼³Á¤ÆÄÀÏ¿¡¼­ AddHandler Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© ISAPI ÆÄÀÏ È®ÀåÀÚ¿Í isapi-handler Çڵ鷯¸¦ ¿¬°áÇÑ´Ù. .dll ÆÄÀÏÀ» ISAPI extensionÀ¸·Î ó¸®ÇÏ·Á¸é httpd.conf ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇÑ´Ù.

AddHandler isapi-handler .dll

¾ÆÆÄÄ¡ ¼­¹ö´Â ¿äûÇÑ ¸ðµâÀ» ¸Þ¸ð¸®¿¡ °è¼Ó µÑ ¼ö ¾ø´Ù. ±×·¯³ª httpd.conf¿¡¼­ ´ÙÀ½°ú °°Àº ¼³Á¤À¸·Î ƯÁ¤ ¸ðµâÀ» ¹Ì¸® ÀоîµéÀÏ ¼ö´Â ÀÖ´Ù.

ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll

ISAPI extensionÀ» ¹Ì¸® ÀоîµéÀÌ´øÁö ¹Ì¸® ÀоîµéÀÌÁö ¾Ê´øÁö °ü°è¾øÀÌ ISAPI extensionÀº CGI ½ºÅ©¸³Æ®¿Í µ¿ÀÏÇÑ ±ÇÇÑ°ú Á¦¾àÀ» µû¸¥´Ù. Áï, ISAPI .dll ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮¿¡ Options ExecCGI°¡ ÇÊ¿äÇÏ´Ù.

mod_isapiÀÇ ISAPI Áö¿ø¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ë°ú ¼³¸íÀº Ãß°¡ ¼³¸í°ú °³¹ßÀÚ Á¤º¸¸¦ Âü°íÇ϶ó.

Ãß°¡ ¼³¸í

¾ÆÆÄÄ¡ ISAPI ±¸ÇöÀº ºñµ¿±â ÀÔÃâ·Â¿¡ ´ëÇÑ "¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ƯÀ¯ÀÇ" È®Àå±â´ÉÀ» Á¦¿ÜÇÑ ISAPI 2.0 ±Ô¾àÀ» ¸ðµÎ ¸¸Á·ÇÑ´Ù. ¾ÆÆÄÄ¡ÀÇ ÀÔÃâ·Â ±¸Á¶·Î´Â ISAPI°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ½ÄÀ¸·Î ºñµ¿±â ÀÔÃâ·ÂÀ» ÇÒ ¼ö ¾ø´Ù. ISA°¡ ºñµ¿±â ÀÔÃâ·Â°ú °°ÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» »ç¿ëÇÏ·Á ÇÑ´Ù¸é, µð¹ö±ë¿¡ µµ¿òÀ» ÁÖ±âÀ§ÇØ ¿À·ù ·Î±×¿¡ ±â·ÏÀ» ³²±ä´Ù. ·Î±×°¡ ¸Å¿ì Ä¿Áú ¼ö Àֱ⶧¹®¿¡ ISAPILogNotSupported Off Áö½Ã¾î¸¦ »ç¿ëÇÏ¸é ·Î±×¿¡ ±â·ÏÇÏÁö ¾Ê´Â´Ù.

Microsoft IIS¿Í °°Àº ¼­¹ö´Â ISAPI extensionÀ» ¸Þ¸ð¸®·Î Àоîµé¿©¼­ ¸Þ¸ð¸® »ç¿ë·®ÀÌ ¸Å¿ì ¸¹Áö ¾Ê°Å³ª Ưº°È÷ ¼³Á¤ÇÏÁö ¾Ê´ÂÇÑ ±×´ë·Î ¸Þ¸ð¸®¿¡ µÐ´Ù. ¾ÆÆÄÄ¡´Â ÇöÀç ISAPICacheFile Áö½Ã¾î¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ¿äûÀ» ¹ÞÀ»¶§¸¶´Ù ISAPI extensionÀ» ¸Þ¸ð¸®¿¡ ÀоîµéÀÌ°í ¹ö¸°´Ù. ºñÈ¿À²ÀûÀÌÁö¸¸, ¾ÆÆÄÄ¡ÀÇ ¸Þ¸ð¸® ±¸Á¶»ó ÀÌ°ÍÀÌ °¡Àå È¿À²ÀûÀÎ ¹æ¹ýÀÌ´Ù. ¿©·¯ ISAPI ¸ðµâÀÌ ¾ÆÆÄÄ¡ ¼­¹ö¿Í ¾à°£ ȣȯÀÌ ¾È¸Â±â¶§¹®¿¡ ¼­¹öÀÇ ¾ÈÁ¤¼ºÀ» À§ÇØ ¸ðµâÀ» ¸Þ¸ð¸®¿¡¼­ ¹ö¸°´Ù.

¶Ç, ¾ÆÆÄÄ¡´Â ISAPI ExtensionÀ» Áö¿øÇÏÁö¸¸, ISAPI Filter¸¦ Áö¿øÇÏÁö ¾ÊÀ½À» ±â¾ïÇ϶ó. ³ªÁß¿¡ ÇÊÅ͸¦ Áö¿øÇÒ ¼ö ÀÖÁö¸¸, ÇöÀç´Â °èȹÀÌ ¾ø´Ù.

°³¹ßÀÚ Á¤º¸

¾ÆÆÄÄ¡ 2.0 mod_isapi ¸ðµâÀ» ÇÁ·Î±×·¡¹ÖÇÑ´Ù¸é, ServerSupportFunction È£ÃâÀ» ´ÙÀ½ Áö½Ã¾î·Î Á¦ÇÑÇØ¾ß ÇÑ´Ù.

HSE_REQ_SEND_URL_REDIRECT_RESP
»ç¿ëÀÚ¸¦ ´Ù¸¥ À§Ä¡·Î ¸®´ÙÀÌ·º¼ÇÇÑ´Ù.
¿ÏÀüÇÑ URLÀ» »ç¿ëÇØ¾ß ÇÑ´Ù (¿¹¸¦ µé¾î, http://server/location).
HSE_REQ_SEND_URL
»ç¿ëÀÚ¸¦ ´Ù¸¥ À§Ä¡·Î ¸®´ÙÀÌ·º¼ÇÇÑ´Ù.
¿ÏÀüÇÑ URLÀÌ ¾Æ´Ï¸ç, ÇÁ·ÎÅäÄÝ°ú ¼­¹ö¸íÀ» ³Ñ±æ ¼ö ¾ø´Ù (¿¹¸¦ µé¾î, /location°°Àº °Í¸¸ °¡´É).
ºê¶ó¿ìÀú°¡ ¾Æ´Ï¶ó ¼­¹ö°¡ ¸®´ÙÀÌ·º¼ÇÀ» ó¸®ÇÑ´Ù.
°æ°í

ÃÖ±Ù ¹®¼­¸¦ º¸¸é Microsoft°¡ µÎ HSE_REQ_SEND_URL ±â´É°£ÀÇ Â÷À̸¦ ¾ø¾Ø °Íó·³ º¸ÀδÙ. ¾ÆÆÄÄ¡´Â °è¼Ó ÀÌ µÑÀÇ ¾Æ±Ô¸ÕÆ® Á¶°Ç°ú ÇൿÀ» ´Ù¸£°Ô ó¸®ÇÒ °ÍÀÌ´Ù.

HSE_REQ_SEND_RESPONSE_HEADER
headers ¹®ÀÚ¿­ ¾Æ±Ô¸ÕÆ®¿¡ ºóÁÙÀÌ (Áٹٲ޹®ÀÚ°¡ µÎ¹ø ¿¬¼Ó) ÀÖ´Ù¸é ¾ÆÆÄÄ¡´Â Çì´õ ´ÙÀ½ ³»¿ëÀ» ÀÀ´ä ³»¿ëÀ¸·Î »ç¿ëÇÑ´Ù. headers ¾Æ±Ô¸ÕÆ®°¡ NULL·Î ³¡³ª±â¶§¹®¿¡, ÀÀ´ä ³»¿ë¿¡ NULLÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.
HSE_REQ_DONE_WITH_SESSION
ISAPI°¡ 󸮸¦ ¸¶Ä¡¸é ¼¼¼ÇÀÌ ³¡³ª±â¶§¹®¿¡ ¾ÆÆÄÄ¡´Â ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù.
HSE_REQ_MAP_URL_TO_PATH
¾ÆÆÄÄ¡´Â °¡»ó À̸§À» ¹°¸®Àû(½ÇÁ¦) À̸§À¸·Î º¯È¯ÇÑ´Ù.
HSE_APPEND_LOG_PARAMETER
¹®±¸¸¦ ¾Æ·¡ ·Î±×Áß ÇÑ°÷¿¡ ³²±ä´Ù.
  • CustomLog Áö½Ã¾îÀÇ \"%{isapi-parameter}n\" Ç׸ñ¿¡
  • ISAPIAppendLogToQuery On Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© %q ·Î±× Ç׸ñ¿¡
  • ISAPIAppendLogToErrors On Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© ¿À·ù ·Î±×¿¡

ù¹ø°·Î ³ª¿Â %{isapi-parameter}n Ç׸ñÀº ¾ðÁ¦³ª »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ±ÇÀåÇÑ´Ù.

HSE_REQ_IS_KEEP_CONN
Çù»óµÈ Keep-Alive »óŸ¦ ¹ÝȯÇÑ´Ù.
HSE_REQ_SEND_RESPONSE_HEADER_EX
fKeepConn ¿É¼ÇÀ» ¹«½ÃÇÏ´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â ¹®¼­¿¡ ³ª¿Âµ¥·Î µ¿ÀÛÇÑ´Ù.
HSE_REQ_IS_CONNECTED
¿äûÀÌ Áß°£¿¡ ²÷¾îÁ³´Ù¸é false¸¦ ¹ÝȯÇÑ´Ù.

Áö¿øÇÏÁö ¾Ê´Â ServerSupportFunction È£ÃâÀ» ÇÏ¸é ¾ÆÆÄÄ¡´Â FALSE¸¦ ¹ÝȯÇÏ°í GetLastError °ªÀ» ERROR_INVALID_PARAMETER·Î ¼³Á¤ÇÑ´Ù.

ReadClient´Â (ISAPIReadAheadBuffer·Î Á¤ÀÇÇÑ) Ãʱâ¹öÆÛÅ©±â¸¦ ³Ñ¾î¼± ¿äû ³»¿ëÀ» °¡Á®¿Â´Ù. ISAPIReadAheadBuffer ¼³Á¤ (ISAPI Çڵ鷯¸¦ ºÎ¸£±âÀü ¹öÆÛÀÇ ¹ÙÀÌÆ®¼ö) º¸´Ù ªÀº ¿äûÀº extensionÀ» ºÎ¸¦¶§ ÀüºÎ Àü´ÞµÈ´Ù. ¿äûÀÌ ±æ¸é, ISAPI extensionÀº ReadClient·Î ³ª¸ÓÁö ¿äû ³»¿ëÀ» °¡Á®¿Í¾ß ÇÑ´Ù.

WriteClient¸¦ Áö¿øÇÏÁö¸¸, HSE_IO_SYNC ¿É¼Ç¸¸ »ç¿ëÇϰųª (0 °ª) ¾Æ¹« ¿É¼Çµµ »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. ´Ù¸¥ WriteClient ¿äûÀº FALSE¸¦ ¹ÝȯÇÏ¸ç ½ÇÆÐÇÏ°í, GetLastError °ªÀº ERROR_INVALID_PARAMETER°¡ µÈ´Ù.

GetServerVariableÀº Áö¿øÇÏÁö¸¸, (´Ù¸¥ ¼­¹ö¿¡¼­ Á¤ÀÇÇÏ´Â) È®Àå ¼­¹öº¯¼ö´Â ¾ø´Ù. GetServerVariable¿¡¼­ ¸ðµç ÀϹÝÀûÀÎ ¾ÆÆÄÄ¡ CGI ȯ°æº¯¼ö¿Í ALL_HTTP, ALL_RAW °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¾ÆÆÄÄ¡ 2.0 mod_isapi´Â ÀÌÈÄ ISAPI ±Ô¾à¿¡ ³ª¿Â Ãß°¡ ±â´ÉÀ» Áö¿øÇÏ°í, ºñµ¿±â ÀÔÃâ·Â°ú TransmitFile ±â´ÉÀ» Á¶±Ý Èä³»³½´Ù. ¶Ç, ISAPI .dllÀ» ¹Ì¸® Àоîµé¿©¼­ ¼º´ÉÀ» ³ôÀÌ´Â ¾ÆÆÄÄ¡ 1.3 mod_isapi¿¡´Â ¾ø´Â ±â´ÉÀ» Áö¿øÇÑ´Ù.

ISAPICacheFile ¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¸Þ¸ð¸®·Î ÀоîµéÀÏ ISAPI .dll ÆÄÀϵé ISAPICacheFile file-path [file-path] ... server configvirtual host

¾ÆÆÄÄ¡ ¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¸Þ¸ð¸®·Î Àоîµé¿©¼­ ¼­¹ö¸¦ Á¾·áÇÒ¶§±îÁö ¸Þ¸ð¸®¿¡ ³²¾ÆÀÖÀ» ÆÄÀϸíÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ÁöÁ¤ÇÑ´Ù. ÀÌ Áö½Ã¾î´Â ISAPI .dll ÆÄÀϺ°·Î ¿©·¯¹ø »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏÀÇ Àüü °æ·Î¸¦ Àû´Â´Ù. Àý´ë °æ·Î°¡ ¾Æ´Ï¸é ServerRoot¿¡ »ó´ë °æ·Î·Î ¹Þ¾ÆµéÀδÙ.

ISAPIReadAheadBuffer ISAPI extensionÀÇ ¹Ì¸®Àбâ¹öÆÛ(read ahead buffer) Å©±â ISAPIReadAheadBuffer size ISAPIReadAheadBuffer 49152 server configvirtual host directory.htaccess FileInfo

ISAPI extensionÀ» óÀ½ È£ÃâÇÒ¶§ ¹Ì¸®Àбâ¹öÆÛÀÇ ÃÖ´ë Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. (ÀÌ Å©±âº¸´Ù Å«) ³ª¸ÓÁö ÀÚ·á´Â ReadClient ÄݹéÀ» »ç¿ëÇÏ¿© Àоî¾ß ÇÑ´Ù. ¾î¶² ISAPI extensionÀº ReadClient ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀÌ °æ¿ì ISAPI extension Á¦ÀÛÀÚ¿¡°Ô ¹®ÀÇÇ϶ó.

ISAPILogNotSupported ISAPI extensionÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ¿äûÇÏ¸é ·Î±×¿¡ ±â·ÏÇÑ´Ù ISAPILogNotSupported on|off ISAPILogNotSupported off server configvirtual host directory.htaccess FileInfo

ISAPI extensionÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ¿äûÇÏ¸é ¼­¹ö ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù. ³ªÁß¿¡ °ü¸®ÀÚ°¡ ¹®Á¦¸¦ ÃßÀûÇϴµ¥ µµ¿òÀÌ µÈ´Ù. ¿øÇÏ´Â ¸ðµç ISAPI ¸ðµâÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ¸é ´Ù½Ã off·Î µÇµ¹·Á¾ß ÇÑ´Ù.

ISAPIAppendLogToErrors ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER ¿äûÀ» ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù ISAPIAppendLogToErrors on|off ISAPIAppendLogToErrors off server configvirtual host directory.htaccess FileInfo

ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER ¿äûÀ» ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù.

ISAPIAppendLogToQuery ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER ¿äûÀ» ÁúÀǹ®ÀÚ¿­¿¡ ±â·ÏÇÑ´Ù ISAPIAppendLogToQuery on|off ISAPIAppendLogToQuery on server configvirtual host directory.htaccess FileInfo

ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER ¿äûÀ» ÁúÀǹ®ÀÚ¿­¿¡ ±â·ÏÇÑ´Ù (CustomLog %q Ç׸ñ¿¡ µ¡ºÙÀδÙ).

ISAPIFakeAsync ºñµ¿±â ISAPI ÄݹéÀ» Áö¿øÇϴ ôÇÑ´Ù ISAPIFakeAsync on|off ISAPIFakeAsync off server configvirtual host directory.htaccess FileInfo

onÀ¸·Î ¼³Á¤ÇÏ¸é ºñµ¿±â ISAPI Äݹé Áö¿øÀ» Èä³»³½´Ù.