[AI] is [get time] idempotent in http?

[AI] is [get time] idempotent in http?

[구글 번역]
네, HTTP에서 [시간 가져오기]는 멱등성을 갖는 것으로 간주될 수 있습니다. 이는 안전한 메서드이기 때문입니다. 즉, 서버에 부작용이 없습니다. 현재 시간을 가져오기 위해 GET 요청을 반복하면 서버 상태를 변경하지 않고 매번 동일한 시간을 반환합니다.
그 이유는 다음과 같습니다.

안전한 메서드:
GET은 안전한 HTTP 메서드입니다. 즉, 데이터를 가져오는 것만을 목적으로 하며 서버 상태를 수정하지 않습니다.

부작용 없음:
현재 시간을 가져오는 것은 순전히 정보 제공을 위한 작업입니다. 동일한 GET 요청을 여러 번 전송해도 시간이 변경되지 않으며 서버의 다른 데이터에도 영향을 미치지 않습니다.
일관된 결과:
GET 요청이 몇 번 전송되든 항상 현재 시간을 반환하며, 이는 단일 GET 요청의 결과와 동일합니다.

따라서 GET은 안전하고 멱등한 HTTP 메서드이므로 시간을 가져오는 요청은 반복 횟수에 관계없이 항상 동일한 결과를 얻습니다.


AI responses may include mistakes.

1개의 좋아요

어떤 의미를 전달 하고 싶으신지 어쭈어도 될까요?
AI는 잘못된 대답을 할 수 있다라는 맥락 같은데, 앞뒤 설명을 조금 부탁드립니다.

1개의 좋아요

네, 웹 쪽은 초보입니다.

http get time, 이것은 서버의 시각을 얻으려고 보낸 요청입니다.
예) http://주소:포트/time

C# WebApplication을 WPF에 심어 서버로 작동하게 하고 위 요청에 응답하게 했습니다.

몇 번의 요청에서는
요청할 때마다의 서버 시각(매 번 다름)이 옵니다.

[idempotent] 에 대한 위 해설을 보고 같은 시각이 오는 것으로 제가 이해했습니다.
그런데 다른 시각이 응답와서
[뭐가 문제인가?] 하고 올렸습니다.

아무 설명 없이 올려서 죄송합니다.

1개의 좋아요

아! 그런거군요!!
제 추측을 말씀 드려 보자면,
서버 시각일 확인 후 반환 한다는 맥락이 논리적인 부분을 어디로 잡느냐에 따라 다른 게 아닐까 생각도 했습니다.
GET을 받는 메서드가 시스템 시간 자체를 변경 하는 건 아니라서 일정한 성능을 보장한다고 발언 한 게 아닐까 싶었습니다.
CPU 클럭이 되었건, 내부 타이머가 있건 말이죠.

마치, {get;} 만 있는 것 처럼요.

음, 그렇다고 한들
Now를 받았을 경우 날짜값이 항상 같진 않으니
"같은 값"이라고 말 한 것도 틀린게 맞긴 하죠…

1개의 좋아요

웹에서 이야기하는 멱등은 프로그래밍의 멱등과 조금 차이가 있는 거 같습니다.

웹은 보통 이렇게 생각 하지요

GET 멱등
POST 비멱등
PATCH 비멱등
PUT 멱등
DELETE 멱등

여러번 호출해도 되는가 입니다. 자신있게 호출하기

POST의 경우 멱등성만으로 표준 작업이 하나 더 있어요.

2개의 좋아요