웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[re] 저의 최종의견 입니다.
2002.12.17 23:12
병철님의 리플을 보다가 오류가 있어 다시 지적드립니다.
음.. 무엇이 잘못되었다는것인지 알수가 없군요..
SetEnvIfNoCase 에 대해 잘못이해하고 계신것 같군요.. SetEnvIfNoCase 는 대소문자를 구분짓기 위해 사용하는것입니다.
(대소문자를 구분짓지 않기 위해 쓰는것이죠. 즉 SetEnvIf 는 대소문자를 구분짓기위해 쓰는것이고 SetEnvIfNocase 는 대소문자를 구분짓지 않기위해 사용하는 것입니다. 오히려 병철님께서 잘못 이해하고 계신듯 하군요)
즉 http://atple.com 과 http://ATPPLE.COM 을 구분짓는것이지요
(그 반대입니다. 오히려 그것들을 구분짓지 않기위해 사용하는것이지요)
저것을 사용하게 된다면 SetEnvIfNoCase 에 지정된 문자(대/소문자)로 된 도메인접근에 대해서만 예외항목을 적용시키게 되는것입니다.
즉 님의 말과는 다른것입니다. SetEnvIfNoCase Referer "atpple.com" go_in 을 하게될경우 소문자로 링크한파일에 대해서 예외항목을 적용시키고 대문자로 링크한것에대해서는 받아들이지 않겠다는 것입니다.
이 부분도 잘못되었습니다. SetEnvIfNocase 의 영어원문은 다음과 같습니다.
The SetEnvIfNoCase is semantically identical to the SetEnvIf directive, and differs
only in that the regular expression matching is performed in a case-insensitive
manner.
이걸 해석해보면 case-insensitive 즉, 대소문자를 가리지 않는다는 것이죠. 만약 병철님의 말대로
SetEnvIfNoCase Referer "atpple.com" go_in 을 하게되면
ATPPLE 이나 atpple 모두 허용한다는 뜻이지 병철님의말대로
" 소문자로 링크한파일에 대해서 예외항목을 적용시키고 대문자로 링크한것에대해서는 받아들이지 않겠다는 것입니다. " 는 아닌것입니다.
그리고 www 을 사용안한것을 말씀하셨는데.. 음.. 그 이유는 모든 1차도메인에 대하여 2차도메인은 종속되기 때문에 2차도메인을 따로 예외항목으로 지정할 필요가 없습니다.
즉 1차도메인만 지정해줌으로 인해서 atpple.com 에대한 2차도메인 모두가 예외항목으로 지정되는것입니다. 오해의 소지가 없었으면 하는 바램입니다.
링크에대해서는 궁금하시다면 HTTP://DEMO.ATPPLE.COM/jsdk20.tar.Z 를 링크하여 한번 사용해보시기 바랍니다. 앳플은 SetEnvIf Referer 를 사용하고 있으며 DEMO 라는 2차도메인에 대하여 예외항목을 적용시키지 않고있습니다.
왠지 충분한 검증을 거쳐보셔야 할분은 제가 아니라 Dopesoul 님이 아닐까 하는생각이 드는군요.. 저는 서버관리를 하는 서버마스터로써 제가 해본것만을 강좌로 연재하고 있으며 이곳의 왠만한 설정법은 모두 현 앳플닷컴 서버의 설정과 동일합니다. ㅡㅡa
그리고 남의 강좌가 잘못되었을때 이렇게 무턱대고 남의 글을 인용하여 실제 환경에 적용해보지않고 제대로 알아보지 않은상태에서 나의 강좌를 비방하는것은 오히려 옳지않은것으로 여겨집니다.
(실제환경에 적용해본 바이며, 무턱대고 남의 글을 인용한것이 아닙니다. 제가 본 강좌를 쓴 정균님은
더 철저한 검증에 의해 쓴 강좌입니다. 저는 몇몇 강좌를 비교해보면서 이것이 nocase 를 적용해야한다고
생각했기때문에 그와같은 글을 올린것입니다. 물론 간단한 답글달기로 의견을 여쭈었을수도 있을 것입니다.
하지만, 이미 그 강좌를 본분들이 꽤 많으며. 유용한 스크립트 였기에 많은분들이 참고했으리라 생각되었기
때문에 글로 올린것입니다. 한번 강좌를 보고 적용시키신 분들이 또 그강좌를 보는 사례는 드물거라 생각합니다.)
오히려 강좌를 쓴분의 코맨트에 이렇게 되는것이 아닌가요? 하고 반문씩으로 물어보거나 혹은 이렇게 하는것이 오히려 더 낳을 것입니다 씩으로 하시는것이 오히려 더 낳겠죠..
그럼 이만 줄이도록 하겠습니다.
제가 별 효용없는 딴지를 건 것일수도 있으나, 몇몇 오류들이 보였기에 글을 올렸습니다. 이와같은일이
강의를 올린 분에게는 상당한 자존심의 타격일수도 있습니다. 하지만 SetEnvIfNocase 가 옳음은 확실합니다.
브라우져와 웹데몬은 실제로는 매우 복잡한 명령어 (헤더라고 합니다) 로 동작됩니다. 그 동작에서의
HTTP_REFERER 라는 변수값이 있습니다. 이 부분에서 도메인값이 아파치로 넘어가게 됩니다.
이부분에서 환경변수로서 값이 해석되게 되는데 이부분에서 대 소문자를 가리냐 안가리느냐는 큰 차이를
낳게 됩니다. 자세한 내용은 저의 말을 듣는것보다
http://oops.org/?t=lecture&sb=apache&n=3
위 URL 을 방문하시면 제가 설명하고자 하는 내용이 바로 나타나게 됩니다. 가서 확인해 보세요.
http 헤더캡춰는 tcpdump 나 ethereal 을 이용하거나 패킷 스니퍼링툴을 이용해서 확인해보시면 압니다.
감사합니다.
음.. 무엇이 잘못되었다는것인지 알수가 없군요..
SetEnvIfNoCase 에 대해 잘못이해하고 계신것 같군요.. SetEnvIfNoCase 는 대소문자를 구분짓기 위해 사용하는것입니다.
(대소문자를 구분짓지 않기 위해 쓰는것이죠. 즉 SetEnvIf 는 대소문자를 구분짓기위해 쓰는것이고 SetEnvIfNocase 는 대소문자를 구분짓지 않기위해 사용하는 것입니다. 오히려 병철님께서 잘못 이해하고 계신듯 하군요)
즉 http://atple.com 과 http://ATPPLE.COM 을 구분짓는것이지요
(그 반대입니다. 오히려 그것들을 구분짓지 않기위해 사용하는것이지요)
저것을 사용하게 된다면 SetEnvIfNoCase 에 지정된 문자(대/소문자)로 된 도메인접근에 대해서만 예외항목을 적용시키게 되는것입니다.
즉 님의 말과는 다른것입니다. SetEnvIfNoCase Referer "atpple.com" go_in 을 하게될경우 소문자로 링크한파일에 대해서 예외항목을 적용시키고 대문자로 링크한것에대해서는 받아들이지 않겠다는 것입니다.
이 부분도 잘못되었습니다. SetEnvIfNocase 의 영어원문은 다음과 같습니다.
The SetEnvIfNoCase is semantically identical to the SetEnvIf directive, and differs
only in that the regular expression matching is performed in a case-insensitive
manner.
이걸 해석해보면 case-insensitive 즉, 대소문자를 가리지 않는다는 것이죠. 만약 병철님의 말대로
SetEnvIfNoCase Referer "atpple.com" go_in 을 하게되면
ATPPLE 이나 atpple 모두 허용한다는 뜻이지 병철님의말대로
" 소문자로 링크한파일에 대해서 예외항목을 적용시키고 대문자로 링크한것에대해서는 받아들이지 않겠다는 것입니다. " 는 아닌것입니다.
그리고 www 을 사용안한것을 말씀하셨는데.. 음.. 그 이유는 모든 1차도메인에 대하여 2차도메인은 종속되기 때문에 2차도메인을 따로 예외항목으로 지정할 필요가 없습니다.
즉 1차도메인만 지정해줌으로 인해서 atpple.com 에대한 2차도메인 모두가 예외항목으로 지정되는것입니다. 오해의 소지가 없었으면 하는 바램입니다.
링크에대해서는 궁금하시다면 HTTP://DEMO.ATPPLE.COM/jsdk20.tar.Z 를 링크하여 한번 사용해보시기 바랍니다. 앳플은 SetEnvIf Referer 를 사용하고 있으며 DEMO 라는 2차도메인에 대하여 예외항목을 적용시키지 않고있습니다.
왠지 충분한 검증을 거쳐보셔야 할분은 제가 아니라 Dopesoul 님이 아닐까 하는생각이 드는군요.. 저는 서버관리를 하는 서버마스터로써 제가 해본것만을 강좌로 연재하고 있으며 이곳의 왠만한 설정법은 모두 현 앳플닷컴 서버의 설정과 동일합니다. ㅡㅡa
그리고 남의 강좌가 잘못되었을때 이렇게 무턱대고 남의 글을 인용하여 실제 환경에 적용해보지않고 제대로 알아보지 않은상태에서 나의 강좌를 비방하는것은 오히려 옳지않은것으로 여겨집니다.
(실제환경에 적용해본 바이며, 무턱대고 남의 글을 인용한것이 아닙니다. 제가 본 강좌를 쓴 정균님은
더 철저한 검증에 의해 쓴 강좌입니다. 저는 몇몇 강좌를 비교해보면서 이것이 nocase 를 적용해야한다고
생각했기때문에 그와같은 글을 올린것입니다. 물론 간단한 답글달기로 의견을 여쭈었을수도 있을 것입니다.
하지만, 이미 그 강좌를 본분들이 꽤 많으며. 유용한 스크립트 였기에 많은분들이 참고했으리라 생각되었기
때문에 글로 올린것입니다. 한번 강좌를 보고 적용시키신 분들이 또 그강좌를 보는 사례는 드물거라 생각합니다.)
오히려 강좌를 쓴분의 코맨트에 이렇게 되는것이 아닌가요? 하고 반문씩으로 물어보거나 혹은 이렇게 하는것이 오히려 더 낳을 것입니다 씩으로 하시는것이 오히려 더 낳겠죠..
그럼 이만 줄이도록 하겠습니다.
제가 별 효용없는 딴지를 건 것일수도 있으나, 몇몇 오류들이 보였기에 글을 올렸습니다. 이와같은일이
강의를 올린 분에게는 상당한 자존심의 타격일수도 있습니다. 하지만 SetEnvIfNocase 가 옳음은 확실합니다.
브라우져와 웹데몬은 실제로는 매우 복잡한 명령어 (헤더라고 합니다) 로 동작됩니다. 그 동작에서의
HTTP_REFERER 라는 변수값이 있습니다. 이 부분에서 도메인값이 아파치로 넘어가게 됩니다.
이부분에서 환경변수로서 값이 해석되게 되는데 이부분에서 대 소문자를 가리냐 안가리느냐는 큰 차이를
낳게 됩니다. 자세한 내용은 저의 말을 듣는것보다
http://oops.org/?t=lecture&sb=apache&n=3
위 URL 을 방문하시면 제가 설명하고자 하는 내용이 바로 나타나게 됩니다. 가서 확인해 보세요.
http 헤더캡춰는 tcpdump 나 ethereal 을 이용하거나 패킷 스니퍼링툴을 이용해서 확인해보시면 압니다.
감사합니다.
댓글 5
-
Dopesoul
2002.12.18 00:48
-
김병철
2002.12.18 05:30
제가 NoCase 에 대해 잘못알고있었던것 같군요.. 그러나 저도 하나는 확실히 말씀드릴수있습니다. 인터넷 주소체계는 소문자이기 때문에 궂이 NoCase 를 사용하지 않더라도 무단 링크를 방지가 가능합니다. 적어도 앳플서버 이하 제가 지금까지 셋팅해왔었던 모든 서버들이 NoCase 를 적용시키지 않고도 외부에서 오는 접근을 잘 막아왔으며 대소문자 모두 소화해 내고 있습니다.
제가 애초에 말하고자 했던것은 저의 강의가 틀리지 않았는것입니다.
Dopesoul 님이 올리신글을 보면 제가 한것이 완전히 틀렸다고 밖에 해석이 가지 않고 있습니다.
저는 이부분을 지적한것이며 저의 강의가 틀리지 않았음을 증명하기위해 많은 정보를 주고 받아왔던 것입니다.
이러한 정보라면 애초에 좀더 구체적인 설명과 함께 SetEnvIf 의 또다른 팁 이라던가 혹은 무단링크 방지 또다른 방법등의 제목으로 글을 올리셨어야 했었다는 것입니다.
무단링크방지 아래강좌가 잘못되었군요.. 라는 글은 너무 어처구니없게도 저의 무단링크 강좌가 완전히 틀렸다는것으로 풀이가 되며 이하 아래에 착한마음님의 강좌또한 틀렸다고 되는것입니다.
그러나 결론은 네버입니다. 분명 저의 강좌와 착한마음님의 강좌는 정상적인것이며 Dopesoul 님은 그 강좌에서 빠졌던부분을 지적하신것 뿐이며 NoCase 를 사용하지 않고 충분가능하다는것입니다. 그리고 글내에 충분히 검토를 해보지않고 글을 올린다고 하셨는데 이곳에 강좌를 쓰시는 분들중 충분히 검토하지않거나 충분히 테스트 해보지 않고 이곳에 강좌를 쓰시는 분들은 없을것입니다. 이부분또한 Dopesoul 님으로 하여금 제가 화가 났던 부분이었습니다. 서두가 조금 맞지않는 글이 되었는데 대충 저의 뜻을 알았으리라 봅니다. 그럼 이만.. -
Dopesoul
2002.12.18 10:22
네 알겠습니다. 제가 너무 충동적으로 글을올렸던것 같습니다.
동의하신다면 그 글은 삭제했으면 합니다.
이곳에 오신분들에게 폐가되지 않기위해서. 아니면 SetenvIfNocase 에 관한
강좌로 바꾸도록하겠습니다. -
김병철
2002.12.18 23:55
네.. 그렇게 하시지요 -
나야나
2002.12.27 00:08
저는 이상하게 강좌에 나온대로 하면 ***.com은 모든 이미지 파일이 다막히고 www.***.com 으로 입력하면 이미지가 보이더라구요 브라우저에 주소를 입력했을때 말이죠. 그래서 이도저도 안되서 소울님이 링크해놓으신 페이지대로 해보니 잘 되더랍니다. -_-a;; 김정균님께 한표! kldp 만세 :)
빨간것으로 한것은 검정색으로 해서 봤더니 본문과 구분이 되지 않아
결정한 일입니다. 일이야 어떻든 이곳의 물을 흐린다면 모든것을 묵인하는하에
모든글을 삭제하겠습니다. 지금 글을 삭제할수없는이유는 곧 제가 잘못했다는것을
의미하기에 쉽게 글을 지울수 없군요. 양해해주신다면 삭제토록하겠습니다.