정확한 서버시간 확인하기 – 퓨어타임
커뮤니티의 출석부, 코레일 기차예매, 인터파크 티케팅을 할 때 해당 서버의 시간을 확인하곤 한다.
부하량이 많은 서버는 시간이 조금씩 느리게 간다. 일반적으로 ms 이내이지만 누적되면 표준시간과 수십초이상 차이날 수 있다.
다만 시간 순서가 중요한 시스템에서, 갑작스런 서버시간 교정은 서버에 ‘시간공백’이나 ‘시간역행’ 현상을 일으키므로 별도의 점검 기간을 정하고 서버의 시간과 표준시간을 일치시키는 작업을 하길 권장한다. (클라우드 서버는 서버 시간 교정을 할 필요가 없다. 자동으로 메인서버와 시간동기화가 되기 때문이다.)
빠르고 정확한 서버시간 확인사이트 - https://ipconfig.tools/ko/servertime
서버시간 확인코드
인터넷 통신규약 표준 RFC 2616에 의해 통신하는 서버는 접속자에게 자신의 시간 정보를 제공해야 한다.
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18
원래 이 규약은 웹 통신의 caching 을 위해서 구현된 규약이며, 시간차를 계산해서 클라이언트 - 서버간 올바른 시간 단위 계산을 도와준다.
The Date general-header field represents the date and time at which the message was originated, having the same semantics as orig-date in RFC 822. The field value is an HTTP-date, as described in section 3.3.1; it MUST be sent in RFC 1123 [8]-date format.
Date = "Date" ":" HTTP-date
An example is
Date: Tue, 15 Nov 1994 08:12:31 GMT
Origin servers MUST include a Date header field in all responses
따라서 서버시간 확인방법은 HTTP 요청 후 response 의 header 를 살펴보면 된다.
curl_setopt($curl, CURLOPT_HEADER, true);