본문 바로가기

전체 글

(82)
HTTP 메서드 종류 PUT, PATCH 그리고 DELETE 지난 번에 이어서 나머지 메서드도 알아보자! PUT 리소스를 대체한다. (파일의 복사랑 유사) (출처) 기존에 파일이 없으면 새로 넣어주고, 똑같은 파일이 있다면 덮어 쓴다. 리소스가 있으면 대체 리소스가 없으면 생성 쉽게 이야기해서 덮어버린다. 즉, 완전히 대체해버린다. 중요! 클라이언트가 리소스를 식별 클라이언트가 리소스 위치를 알고 URI 지정 POST와의 차이점을 알아두자 아래 그림을 보면 PUT /members/100 HTTP/1.1 → 클라이언트가 구체적인 리소스 전체 경로를 알고있고 URI를 지정한다! → 이 점이 POST와의 차이점이다. → PUT 같은 경우는 클라이언트가 리소스를 식별한다. PUT 리소스가 있는 경우 (출처) username : old로 age를 50이라는 메시지를 담아서..
HTTP 메서드 종류 GET과 POST 주요메서드 리소스 = 리프리젠테이션 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스를 대체, 해당 리소스가 없으면 생성 PATCH : 리소스 부분 변경 DELETE : 리소스 삭제 기타 메서드 HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS : 대상 리소스에 대한 통신 기능 옵션(메서드)를 설명(주로 CORS에서 사용) CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정 TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 GET 리소스 조회 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)을 통해서 전달 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지..
HTTP 메서드 = HTTP API HTTP API를 만들기위해 예시로 만들어보자 회원 목록 API를 설계한다고 가정했을 떄 아래와 같은 경우는 올바른 API 설계일까?? (Before) 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member API URI 설계하는데 있어서 가장 중요한 것은 리소스 식별이다! API URI의 고민 리소스의 의미란? 회원을 등록하고 수정하고 조회하는게 리소스가 아니다. ex) 메니랄을 캐라가 리소스가 아니고 미네랄 자체가 리소스다. 위에서는 회원이라는 개념 자체가 바로 리소스 이다. 리소스를 식별하는 방법은 회원을 등록하고 수정 조회하는 것들은 배제하고 회원이..
HTTP의 메시지 HTTP 프로토콜을 통해 응답을 요청하거나 받는 경우 HTTP 메시지의 형태가 넘어온다. 이 메시지를 통해 어떤 정보들이 넘어왔는지 혹은 넘어가는지를 확인하는 것 HTTP의 요청메시지 형태와 응답메시지 형태의 구성은 아래 그림과 같다. (출처) ㅇ 먼저 HTTP의 메시지가 어떤 구조를 가지는지 부터 살펴보자! (출처) 요청메시지의 시작 라인에는 GET, POST 등이 들어간다. 공백 라인은 무조건 존재해야한다. 시작 라인(요청메시지) start-line = request-line(요청메시지일 경우) / status-line(응답메시지일 경우) request-line = method (GET, POST 등) SP(공백) request-target(요청하는 대상의 Path) SP HTTP-version CR..
HTTP의 성격 Connectionless HTTP는 연결을 유지하지 않는 성질을 기본적으로 가지고 있다. 일반적으로 초 단위 이하의 빠른 속도로 응답 수천명이 서비스를 사용해도 실제 동시에 처리하는 요청은 수십개 이하로 매우 작다. 서버 입장에서 봤을 떄는 자원을 효율적으로 사용한다는 장점이 있다. 아래의 그림에서 연결을 유지하는 경우와 유지하지 않는 경우를 알아보자 (참조) HTTP는 연결을 유지하지 않는다!! 연결을 유지하지 않는 HTTP는 서버에게 필요한 요청을 하고 서버측에서는 최소한의 자원만 유지한채 응답을 내려주고 연결을 끊는다. 비연결성의 한계 TCP/IP 연결을 새로 맺어야 하기 떄문에 3 way handshake 시간이 추가로 든다. ex) Syn, Ack 의 연결 요청할 때 HTML 뿐 아니라 자바스크립트, css 등 추가 이..
HTTP의 성질 Stateless Stateless 스테이스리스 라고 불리우는 이것은 HTTP의 대표적인 성질 중의 하나이다. 서버가 클라이언트의 상태를 보존하지 않겠다라는 의미 Stateless의 성질을 알아보기 위해서는 이와 반대되는 Stateful를 비교하여 알아두는 것이 좋다. Stateful의 특징을 알아보기 위해 예를 들어보려고 한다. 아래의 그림은.. 그렇다.. 31가지 아이스크림이다.. 필자가 자주 시켜먹는 아이스크림이다.. 31가지 아이스크림을 방문하게 되었고.. 아래와같이 3명의 직원이 있다고 가정하자.. 실제로도 3명이상 역할을 나누어 일을한다. 상태 유지 Stateful 상태일 경우 손님 : 31가지 아이스크림 파인트로 주세요 직원A : 7900원 입니다. (아이스크림 종류 상태 유지) 신용카드, 현금중에 어떤걸로 ..
HTTP 시작 HTTP(HyperText Transfer Protocol) 의 약자를 줄여서 나타낸다. 요즘에는 HTTP에 거의 모든 형태를 담아서 전송할 수 있다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML(API) 거의 모든 형태의 데이터를 전송 서버간의 데이터를 주고받을때도 사용할 수 있다. HTTP 1.1 버전 / 1997년에 등장했으며, 가장 많이 사용하고 중요한 버전이다. → 현재는 HTTP/3 진행 중 기반 프로토콜 HTTP/1.1, HTTP/2는 TCP 프로토콜 위에서 작동한다. HTTP/3은 UDP 프로토콜 에서 작동 현재는 1.1버전의 HTTP를 주로 사용하고 있다! 그래서 HTTP 1.1버전을 아는것이 제일 중요! HTTP의 특징 클라이언트 서버 구조를 기반으로 동작한다...
UR패밀리 URI, URL, URN 과 웹브라우저 흐름 필자는 URI와 URL에 대해서는 들어봤지만 URN에 대해서는 들어본적이 없다. 공부를 하며 알게된 내용을 정리하자! URI(Uniform Resource Identifier) > URL(Uniform Resource Locator) + URN(Uniform Resource Name) URI - 리소스(자원)을 식별한다. Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것(제한없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL - 리소스의 위치를 나타낸다. ex) 특정 사용자가 어디에 위치해 있다라는 걸 나타냄 즉, 홍길동이 있는 위치 URN - 리소스에 이름을 부여 ex) 사용자 자체를 말함 즉, 홍길동 위치는 변할 수 있지..