강의/모든 개발자를 위한 HTTP (5) 썸네일형 리스트형 HTTP 메서드의 속성 안전 메서드를 호출해도 리소스를 변경하지 않는다. GET 메서드만 안전하다고 할 수 있다. 멱등 한번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다. GET: 멱등이다. 몇 번을 조회하든 같은 결과가 조회됨 PUT: 멱등이다. 결과를 대체한다. 따라서 같은 요청을 여러번 해도 최종 결과는 같다. DELETE: 멱등이다. 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다. POST: 멱등이 아니다. 두번 호출하면 같은 결제가 중복해서 발생할 수 있다. 멱등 활용 자동 복구 메커니즘 서버가 TIMEOUT등으로 정상 응답을 못 주었을 때, 클라이언트가 같은 요청을 다시 해도 되는가에 대한 판단 근거 멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지는 고려하지 않는다. 캐시 가능 .. HTTP API 생성 리소스에 대해서 고민하라 그렇다면 리소스의 의미는 무엇인가? 회원을 등록하고 수정하고 조회한다고 가정할 때 등록하고 수정하고 조회하는 개념은 리소스가 아니다. 회원이라는 개념 자체가 바로 리소스다. 회원이라는 리소스를 URI에 매핑하면 된다. 참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장 (member -> members) 회원이라는 리소스는 URI에 매핑을 하면 된다고 하였다. 그렇다면 등록하고 조회하는 행위는 어디에 매핑을 하면 될까 바로 HTTP 메서드에 매핑을 하면 된다. GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 (덮어쓰기) PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 HTTP Response의 이해 (@Controller, @RestController) @Controller를 사용해본적이 있고 @RestCotroller를 사용해본적이 있어야 이해하기가 편할 것으로 생각됩니다. 들어가기에 앞서 Controller return 값에 따라 HTTP Response의 값이 어떻게 변하는지 먼저 알아보도록 하겠습니다. 위에 표를 보고 한눈에 이해하기가 쉽지 않을 수 있습니다. 같이 한번 살펴보도록 하겠습니다. 일반적으로 @Controller가 반환하는 return 타입은 1가지 나눌 수 있습니다. (String) @RestController가 반환하는 return 타입은 2가지 나눌 수 있습니다. (String, String외) 이에따라 HTTP Response는 어떻게 변하는지 살펴보도록 하겠습니다. @Controller 자, 앞서 Controller 어노테.. HTTP의 구조를 알아보자 Client 와 Server 간 Request, Response 는 HTTP 메시지 규약을 따름 HTTP 메시지는 웹 서비스 개발자(백엔드, 프론트 개발자)에게 매우 중요한 내용! HTTP의 구조 HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지고, 응답(response)은 요청에 대한 서버의 답변입니다. Request와 Response는 startline, header, body등 3개의 구조로 나눠져 있습니다. Request와 Response 각각의 구조를 조금 더 면밀히 살펴보도록 하겠습니다. Reqest Startline - api 호출 부분입니다. -.. HTTP IP 주소를 통해 클라이언트와 서버는 상호 통신이 가능하다. (IP는 인터넷 주소) 패킷이라는 통신 단위로 데이터를 전달한다. 출발지와 목적지 IP를 적어서 IP 패킷을 전달한다. 클라이언트에서 서버로 가능 방법과 서버에서 클라이언트로 가는 방법은 다를 수 있다. IP 프로토콜의 한계 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 - 중간에 패킷이 사라지면? (패킷 소실) - 패킷이 순서대로 안오면? (패킷 전달 순서 문제 발생) - 패킷의 크기가 클 경우 나눠서 발송을 함, 보내는건 순서대로지만 도착은 순서대로 도착한다는 보장은 없다. 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 (한개의 컴퓨터로 게임도 하고, 음악도 들고 다양한.. 이전 1 다음