본문 바로가기

Web/HTTP

(25)
[모든 개발자를 위한 HTTP 웹 기본 지식] 8.HTTP 메서드 활용( 2/2 ) HTTP API 설계 예시 HTTP API - 컬렉션 POST 기반 등록 ex. 회원 관리 API 제공 서버가 리소스 URI 결정 HTTP API - 스토어 PUT 기반 등록 ex. 정적 컨텐츠 관리, 원격 파일 관리 클라이언트가 리소스 URI 결정 HTTP FORM 사용 웹 페이지 회원 관리 GET, POST만 지원( 순수 HTML + HTML form 사용 ) 1. HTTP API - 컬렉션 회원 관리 시스템 설계 - API 설계 - POST 기반 등록 ※ 리소스를 식별해야한다. 행위로 식별하면 안된다. 회원 목록 /members -> GET 회원 등록 /members -> POST 회원 조회 /members/{id} -> GET 회원 수정 /members/{id} -> PATCH, PUT, POST..
[모든 개발자를 위한 HTTP 웹 기본 지식] 7.HTTP 메서드 활용( 1/2 ) 클라이언트에서 서버로 데이터 전송 데이터 전달방식은 크게 2가지가 있다. 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터( 검색어 ) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 예시상황으로 진행 1. 정적 데이터 조회 쿼리 파라미터 미사용 이미지, 정적 텍스트 문서 조회는 GET 사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 2. 동적 데이터 조회 쿼리 파라미터 사용 주로 검색, 게시판 목록에서 정렬 필터( 검색어 ) 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 조회는 GET 사용 GET은 쿼리 파라미터 사용해서 데이터를 전달 3. HTML Form 데..
[모든 개발자를 위한 HTTP 웹 기본 지식] 6.HTTP 메서드의 속성 3가지( 3/3 ) HTTP 메서드의 속성 3가지 1. 안전( Safe ) 호출해도 리소스를 변경하지 않는다. Q. 여러번 호출해서, 로그 같은 데이터가 쌓여서 장애가 발생한다면? A. 안전은 리소스만 고려한다. 2. 멱등( Idempotent ) f(f(x)) = f(x) 한번 호출하든 두 번 호출하든 100번 호출하든 결과는 똑같다. 멱등 메서드 GET : 한 번 조회하든, 두 번 조회하든 같은 결과가 조회된다. PUT : 결과를 대체한다. 따라서 같은 요청을 여러번 해도 최종 결과는 같다. DELETE : 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다. POST : 멱등이 아니다! 두 번 호출하면 같은 결제가 중복해서 발생할 수 있다. 활용 자동 복구 매커니즘 서버가 TIMEOUT 등으로 정상 응답을..
[모든 개발자를 위한 HTTP 웹 기본 지식] 5.HTTP 메서드 - PUT, PATCH, DELETE ( 2/3 ) PUT 리소스를 대체 리소스가 있으면 개체 리소스가 없으면 생성 모든 리소스를 덮어버림 클라이언트가 리소스를 식별 클라이언트가 리소스 위치를 알고 URI 지정 POST와 차이점 주의점 - 리소스를 완전히 대체한다. username필드를 삭제해 버린다. PATCH HTTP에서 PATCH를 못받아들일 경우 POST로 진행하면 된다. 리소스의 부분변경 DELETE 리소스 제거 출처 https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사..
[모든 개발자를 위한 HTTP 웹 기본 지식] 4.HTTP 메서드 - 기본, GET, POST ( 1/3 ) API URI 고민 URI( Uniform Resource Identifier ) 리소스의 의미? ex. 회원이라는 개념 자체가 바로 리소스이다. 리소스를 어떻게 식별을 할까? ex. 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 매핑 API URI 설계 리소스만 반영 리소스와 행위를 분리 URI는 리소스만 식별 리소스와 해당 리소스를 대상으로 하는 행위를 분리 리소스 : 회원 행위 : 조회, 등록, 삭제, 변경 리소스는 명사, 행위는 동사 HTTP 메서드 - GET, POST HTTP 메서드 종류 1) 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 리소스..
[모든 개발자를 위한 HTTP 웹 기본 지식] 3.HTTP 기본 HTTP( HyperText Transfer Protocol ) HTML, TEXT JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 떄도 대부분 HTTP 사용 - 기반 프로토콜 TCP : HTTP/1.1, HTTP/2 UDP: HTTP/3 현재 HTTP/1.1 주로 사용 HTTP/2. HTTP/3도 점점 증가 - 특징 클라이언트 서버 구조 무상태 프로토콜( 스테이스리스 ), 비연결성 HTTP 메시지 단순함, 확장 가능 1. 클라이언트 서버 구조 Request, Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 클라이언트와 서버를 분리하면 독립적으로 진행 가능 2. 무상태 프로토콜( Stateless ..
[모든 개발자를 위한 HTTP 웹 기본 지식] 2.URI와 웹 브라우저 요청 흐름( URI - Uniform Resource Identifier) URI? URL? URN? URI는 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있다. https://www.ietf.org/rfc/rfc3986.txt - 1.1.3. URI, URL, and URN URI 단어 뜻 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL: Uniform Resource Locator URN: Uniform Resource Name URL, URN 단어 뜻 URL - Locator: 리소스가 있는 위치를 지정 URN - Name: 리소스에 이름을 부여 위치는 변할 수 있지만, 이름은 변하지 않는다. urn:isbn:896..
[모든 개발자를 위한 HTTP 웹 기본 지식] 1.인터넷 네트워크( IP, UDP, TCP) IP( 인터넷 프로토콜 ) 지정한 IP 주소( IP Address )에 데이터 전달 패킷( Packet )이라는 통신 단위로 데이터 전달 출발지 IP, 목적지 IP, 전송 데이터, ... IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라질 수 있다. 패킷이 순서대로 안 올 수 있다. 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? ※ 이런 한계들을 극복할 수 있게 도와주는 게 TCP, UDP 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 HTTP, FTP 전송계층 TCP, UDP 인터넷 계층 IP 네트워크 인터페이스 계층 1. TCP( 전송 제어 프로토콜, Transmission Control Prot..