(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 3. PUT, PATCH, DELETE 1. PUT 리소스 대체 - 리소스가 있으면 대체(덮어씀) - 리소스가 없으면 생성 (중요!) 클라이언트가 리소스를 식별 - 클라이언트가 리소스 위치를 알고 URI 지정(POST와 차이점) POST) /members :→ 클라이언트는 리소스 위치 모름 PUT) /members/100 → 클라이언트는 리소스 위치 알고 URI 지정 2. PUT 동작 과정 PUT은 리소스가 있으면 대체, 없으면 생성하는 2가지 경우가 존재한다. 1) 리소스 대체1 - 메시지 전달 클라이언트가 /members/100에 리소스를 대체하기 위해 PUT 방식으로 HTTP 요청 메시지를 서버에 보낸다. ..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 2. GET, POST HTTP 메서드는 클라이언트가 서버에 무언가를 요청할 때 기대하는 행위이다. 최근에는 리소스라는 단어대신 representation 을 사용하는데, 아직 설명전이니 representation 대신 리소스를 사용하도록 하겠다. 1) GET: 리소스 조회 2) POST: 요청 데이터 처리(주로 등록에 사용) 3) PUT: 리소스를 대체, 해당 리소스가 없으면 생성(파일을 폴더에 넣는 것과 비슷) 4) PATCH: 리소스 부분 변경(e.g 회원의 이름 변경) 5) DELETE: 리소스 삭제 1) HEAD: GET과 동일하지만 메시시 부분(message body)을 제외하고, 상태 줄(status..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 1. HTTP API를 만들어보자 1. 요구사항 회원 정보 관리 API를 만들어라. 1) 회원 목록 조회 2) 회원 조회 3) 회원 등록 4) 회원 수정 5) 회원 삭제 2. API URI 설계1 API 기능에 대응하는 직관적인 이름으로 URI 를 설계하면, 다음과 같이 URL을 모두 따로 만들어야 한다. 1) 회원 목록 조회 - /read-member-list 2) 회원 조회 - /read-member-by-id 3) 회원 등록 - /create-member 4) 회원 수정 - /update-member 5) 회원 삭제 - /delete-member 3. 이것은 좋은 URI 설계일까? 가장 중요한 것은 리소스 ..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 5. HTTP 메시지(중요!) 1. 모든 것이 HTTP (복습) HTTP 메시지에 모든 것을 전송 1) 거의 모든 형태의 데이터 전송 가능 - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML(API) 2) 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용 2. HTTP 요청 메시지와 HTTP 응답 메시지 보는 것과 같이, HTTP 요청 메시지와 HTTP 응답 메시지는 형태가 조금 다르다. 3. HTTP 메시지(HTTP 요청 메시지와 HTTP 응답 메시지)의 구조 3-1. HTTP 메시지 구조 1) start-line: 시작 라인 2) header: 헤더 3) empty line:..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 4. 비 연결성(connectionless) 1. 연결을 유지하는 모델 TCP/IP는 연결을 유지하는 모델이다. 1) 클라이언트1&서버 TCP/IP 연결 클라이언트1은 서버와 연결된 후, 요청과 응답을 주고 받는다. 현재 클라이언트 1은 서버와 연결이 유지된 상태이다. 2) 클라이언트2&서버 TCP/IP 연결 클라이언트2는 서버와 연결된 후, 요청과 응답을 주고 받는다. 현재 클라이언트1, 2는 서버와 연결이 유지된 상태이다. 3) 클라이언트3&서버 TCP/IP 연결 클라이언트3은 서버와 연결된 후, 요청과 응답을 주고 받는다. 현재 클라이언트1, 2, 3은 서버와 연결이 유지된 상태이다. 4) 클라이언트1&서버..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 3. Stateful, Stateless 1. 무상태 프로토콜(Sateless) 서버가 클라이언트의 상태를 보존X - 장점: 서버 확장성 높음(스케일 아웃) - 단점: 클라이언트가 추가 데이터 전송 2. Stateful, Stateless 차이 2- 1. 상태 유지 - Stateful 1) 상태 유지 - Stateful 2) 상태 유지- Stateful, 점원이 중간에 바뀌면? 3) 상태유지 - Stateful, 정리 2-2. 무상태 - Stateless 1) 무상태 - Stateless 2) 무상태 - Stateless, 점원이 중간에 바뀌면? 1) 상태 유지 - 중간에 다른 점원으로 바뀌면 안된다. (중간에 ..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 1. 모든 것이 HTTP 일반적으로 휴대폰, 컴퓨터 등에서 필요한 데이터는 서버에 요청하여 받아온다. 네트워크를 통해 서버로부터 데이터를 가져오기 위한 통신으로 크게 HTTP 통신과 Socket 통신 2가지가 있다. 1. HTTP(HyperText Transfer Protocol) HTTP는 하이퍼 텍스트를 주고 받기 위한 규칙(통신 규약)이다. 2. HTTP 메시지에 모든 것을 전송 1) 거의 모든 형태의 데이터 전송 가능 - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML(API) 2) 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용 실무에서 통신할 때 TCP 프로토콜을 직..
(인프런) 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 리뷰한 글입니다. 1. URI 1. URI? URL? URN? 1) URI(Unifrom Resource Identifier) URI = URL + URN Unifrom : 리소스 식별하는 통일된 방식 Resouce : 자원 = URI로 식별할 수 있는 모든 것(제한X) Identifier : 다른 항목과 구분하는데 필요한 정보 2) URL(Unifrom Resource Locater), URN(Uniform Resource Name) Locater : 리소스가 있는 위치를 지정 Name : 리소스에 이름을 부여 위치는 변할 수 있지만 이름은 변하지 않는다. URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않음 우..