(보는 사람도 없지만 혼자서..그렇다고 생각하고...ㅋㅋ)
웹을 통해서는 서버에 접속할 방법이 없죠..
서버에 접속을 하지 못하면 해당 서버의 시간이나 다른 정보들을 확인할 수 없습니다.
그런데 어떻게 다른 서버의 시간을 확인한단 말인가?!
네, 그렇습니다..
웹을 통해서 HTTP 프로토콜로 통신을 할 때는 항상 서버와 클라이언트 간에 헤더를 주고 받습니다.
이 헤더에 바로 서버의 시간이 들어가 있는 것이죠!
그렇다면 어떻게 그 헤더를 확인할까요?
PHP에서는 아래와 같은 함수를 제공해서 쉽게 헤더의 정보를 확인할 수 있습니다.
<pre> <?php print_r(get_headers("http://www.google.com")); ?> </pre>
get_headers 함수를 사용하면 헤더의 정보를 배열로 가지고 옵니다.
아래와 같이 출력이 되죠..
Array ( [0] => HTTP/1.0 200 OK [1] => Date: Fri, 17 Jan 2014 05:54:31 GMT [2] => Expires: -1 [3] => Cache-Control: private, max-age=0 [4] => Content-Type: text/html; charset=ISO-8859-1 [5] => Set-Cookie: PREF=ID=ba7f1efc9ec1115d:FF=0:TM=1389938071:LM=1389938071:S=2t679jx5Jn1jQBKx; expires=Sun, 17-Jan-2016 05:54:31 GMT; path=/; domain=.google.com [6] => Set-Cookie: NID=67=Hjk8uiYHUXHHR0Mwp6GvSpXdztd5xvPmeVWrxa33pcaljTShBUGl2YoRbk3hrSFXxeUbyQy9Uv1FggIXD87__YjW9jh5YjDTV052pVdxEzZkn9uDu9-GAc0eZ1DbgP7r; expires=Sat, 19-Jul-2014 05:54:31 GMT; path=/; domain=.google.com; HttpOnly [7] => P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." [8] => Server: gws [9] => X-XSS-Protection: 1; mode=block [10] => X-Frame-Options: SAMEORIGIN [11] => Alternate-Protocol: 80:quic )
배열을 숫자가 아닌 key 형태로 가져오고 싶을 땐 get_headers 함수에 파라미터 하나만 더 추가해 주면 됩니다.
<pre> <?php print_r(get_headers("http://www.google.com", 1)); ?> </pre>
그럼 아래와 같이 key 형태의 배열로 값을 가져오게 됩니다.
Array ( [0] => HTTP/1.0 200 OK [Date] => Fri, 17 Jan 2014 05:56:25 GMT [Expires] => -1 [Cache-Control] => private, max-age=0 [Content-Type] => text/html; charset=ISO-8859-1 [Set-Cookie] => Array ( [0] => PREF=ID=8f419d80f7122ce6:FF=0:TM=1389938185:LM=1389938185:S=ke8O3WHqhTOLocAD; expires=Sun, 17-Jan-2016 05:56:25 GMT; path=/; domain=.google.com [1] => NID=67=oFNKouP20OJI0pI_2yjJ5TmOmYfXO_L3vS7GMET9g1t6hfUm4oDoozDDFy9Ox5Xw3Icqt04J6D5NZt2cIQmyw4wh7re3xUgrV4llSP2SLA5DX-xnwMQRZm1em98yEOat; expires=Sat, 19-Jul-2014 05:56:25 GMT; path=/; domain=.google.com; HttpOnly ) [P3P] => CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." [Server] => gws [X-XSS-Protection] => 1; mode=block [X-Frame-Options] => SAMEORIGIN [Alternate-Protocol] => 80:quic )
저~기에 Date가 보이시죠?ㅎㅎ
저 값이 바로 서버에서 클라이언트로 response를 보낸 시간입니다.
서버의 정확한 시간을 알아내려면 한가지 숙제가 남아있죠!
바로 오차 줄이기 입니다..
클라이언트와 서버 간에 데이터를 주고 받는 데 발생하는 시간적 오차입니다.
그건 여러분이 한번 생각해 보시기 바랍니다! ^^
허접하지만 소스는 GitHub를 통해 공유했습니다.
개발자이시군요.
답글삭제저는 개발자는 아니지만 취미 생활로 블로그 관리 겸 웹프로그래밍을 하고 있습니다 ㅎㅎ... (그냥 소스코드 복사가 많지만...)
구글 웹마스터 도구에 사이트를 등록하거나, 다음뷰, 믹시 같은 메타블로그에 블로그를 등록하면 방문자 수가 조금이라도 늘어날 거라고 봐요. 메타블로그에 등록하면 각종 다른 사이트에 글이 게시될 확률이 높습니다.
아하! 능력자시군요!ㅋㅋㅋ
답글삭제웹마스터 도구에 사이트는 등록했구요~다음뷰도 해놨는데..주제가 별로라서 그런지..그닥 호응이 없군요..ㅎㅎ
믹시도 생각해 봐야겠습니다 ^^
좋은 정보 감사합니다!