익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT위키
검색
PHP SERVER 변수
편집하기 (부분)
IT위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
=== 'HTTP_HOST'와 'SERVER_NAME'의 차이 === 두 변수 모두 디렉터리나 파라미터를 제외한 홈페이지 도메인을 보여준다. 본 위키의 경우 itwiki.kr 이다. 그러나 불러오는 출처에서 차이가 있는데 HTTP_HOST는 사용자의 요청에 기반한 정보([[HTTP 요청 헤더]]에서 얻는다)이고 SERVER_NAME은 서버의 설정에 기반한 정보이다. 거의 대부분의 경우는 같은 값을 반환하므로 그냥 아무거나 선택해서 사용해도 무방하다. 하지만 미세한 차이점과 장단점이 있는데 차이점 중 대표적인 것이 포트 포함 여부, 이스케이프 여부 등이다. '''장단점''' '''HTTP_HOST는''' HTTP요청을 조작하여 얼마든지 원하는 값을 넣을 수 있다. abc.com을 호출 하면서 Host: xyz.com 라는 헤더 값을 넣으면 HTTP_HOST는 xyz.com이라는 값이 나온다. 정상적인 요청이 아닌 경우 그냥 빈 값을 반환할 수도 있다. '''SERVER_NAME은''' 서버의 설정이 제대로 되어 있지 않을 경우 값이 나오지 않거나 잘못 나올 수 있다. 서버에서 가져올 값이 없는 경우 HTTP_HOST의 값을 참조하여 가져온다. 따라서 서버 설정도 되어있지 않고 HTTP_HOST의 값도 없는 경우 HTTP_HOST도 빈 값, SERVER_NAME도 빈 값이지만, HTTP_HOST의 값이 있는 경우라면 SERVER_NAME도 빈 값은 아니다. '''포트 포함 여부''' 8080과 같이 별도 포트를 사용하는 경우, HTTP_HOST는 포트를 포함하지만 SERVER_NAME은 포트를 포함하지 않는다. 단, 일반적으로 접근하는 80(http)이나 443(https)의 경우 해당사항이 없다.<blockquote> * $_SERVER['HTTP_HOST'] == 'localhost:8080' * $_SERVER['SERVER_NAME'] == 'localhost'</blockquote>'''HTML 이스케이프 여부''' 이 또한 일반적인 경우는 아니고 비정상 적인 요청일 때만 차이가 난다. 만약 [[크로스사이트 스크립트]] 등을 위해 HTTP 요청 헤더의 Host 값에 <script>와 같은 태그를 넣는다면 HTTP_HOST는 적힌 그대로 보여주고, SERVER_NAME은 HTML로 이스케이프된 값을 보여준다.<blockquote> * $_SERVER['HTTP_HOST'] == [<nowiki><script>alert('XSS')</script></nowiki>] * $_SERVER['SERVER_NAME'] == <nowiki>[&lt;script&gt;alert('XSS')&lt;/script&gt;]</nowiki></blockquote>
요약:
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
분류별 보기
일반 IT용어
프로젝트 관리
디지털 서비스
블록체인
인공지능
소프트웨어 공학
운영체제
컴퓨터 구조
자료 구조
데이터 과학
데이터베이스
네트워크
프로토콜
보안
컴플라이언스
개인정보보호
표준
경영학
기업 IT
조직/단체
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록