HTTP 메소드의 속성으로 안전, 멱등, 캐시가능이 있는데, 이번에는 그 중에서 멱등이 무엇이고 Patch가 멱등하지 않은 이유와 Delete가 멱등한 이유에 대해서 살펴보도록 하겠습니다. 1. HTTP 메소드의 멱등성(Idempotence)이란? [ HTTP 메소드의 멱등성(Idempotence)이란? ] HTTP 메소드의 속성 중에 안전(Safe), 캐시(Cacheable)과 함께 멱등성(Idempotence)이 있다. RFC 7231 스펙 문서에 보면 멱등성이란 “여러 번 동일한 요청을 보냈을 때, 서버에 미치는 의도된 영향이 동일한 경우” 라고 정의되어 있다. 그리고 Safe 요청들(GET, HEAD 등)에 더해 PUT, DELETE가 멱등한 HTTP 메소드라고 나와있다. [ HTTP 메소드의 멱..
최근에 Multipart/form-data 형태의 데이터를 다루어야 했는데, PATCH나 PUT는 요청이 정상적으로 처리되지 않는 것을 확인했습니다. 그래서 어째서인지 이유를 찾아 보게 되었고, 이번에는 관련 내용에 대해 정리해보고자 합니다. 관련된 내용은 StackExchange에서 참고하였으며, 편하게 읽어주세요ㅎㅎ 1. HTML 폼(form) 요청이 PATCH와 PUT, DELETE를 지원하지 않는다. [ Multipart PATCH/PUT API 개발 과정 ] Multipart PATCH/PUT API 개발 개발을 진행하다가 데이터와 이미지를 함께 보내기 위해 Multipart/form-data 타입의 데이터를 다루어야 했습니다. 부서 특성상 평소에 폼 데이터를 다룰 일이 거의 없었는데, 평소에 ..
1. HTTP 상태 401(Unauthorized) vs 403(Forbidden) 차이 [ HTTP 상태 401(Unauthorized) 이란? ] HTTP 상태 중 401(Unauthorized)는 클라이언트가 인증되지 않았거나, 유효한 인증 정보가 부족하여 요청이 거부되었음을 의미하는 상태값이다. 즉, 클라이언트가 인증되지 않았기 때문에 요청을 정상적으로 처리할 수 없다고 알려주는 것이다. 401(Unauthorized) 응답을 받는 대표적인 경우는 로그인이 되어 있지 않은 상태에서 무언가 요청을 하는 경우이다. 예를 들어 어떤 쇼핑몰 사이트에 로그인을 하지 않았는데 나의 결제 내역과 같은 정보를 달라고 하면 401(Unauthorized)를 반환받게 될 것이다. 이와 많이 혼동되는 HTTP 상태로..
1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 처음 설계되었으며, WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 하였다. [ HTTP의 구조 ] HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한..
웹은 현재 작업중인 페이지에서 다른 페이지로 이동하기 위해 2가지 페이지 전환 기능을 제공합니다. 오늘은 2가지의 페이지 전환 방법의 차이와 사용법에 대해 알아보도록 하겠습니다. 1. Forward 방식 [ Forward 방식 ] Forward는 Web Container 차원에서 페이지의 이동만 존재합니다. 실제로 웹 브라우저는 다른 페이지로 이동했음을 알 수 없습니다. 그렇기 때문에 웹 브라우저에는 최초에 호출한 URL이 표시되고, 이동한 페이지의 URL 정보는 확인할 수 없습니다. 또한 현재 실행중인 페이지와 forward에 의해 호출될 페이지는 Request 객체와 Response 객체를 공유합니다. 위와 같이 Foward는 다음으로 이동 할 URL로 요청정보를 그대로 전달합니다. 그렇기 때문에 사..