본문 바로가기

전체 글

(142)
[모든 개발자를 위한 HTTP 웹 기본 지식] 11.HTTP 헤더 - 일반 헤더 - 개요( 1/8 ) HTTP 헤더 1. 용도 2. 분류 - RFC2616( 과거 ) HTTP BODY 1. message body - RFC2616( 과거 ) HTTP 표준 변화 1999년 RFC2616 : 폐기 처리 2014년 RFC7230 ~ 7235 등장 RFC723x 변화 엔티티( Entity ) -> 표현( Representation ) Representation = representation Metadata + Representation Data 표현 = 표현 메타데이터 + 표현 데이터 HTTP BODY message body - RFC7230( 최신 ) 출처 https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/da..
[모든 개발자를 위한 HTTP 웹 기본 지식] 10.HTTP 상태코드 - 4xx, 5xx ( 2/2 ) 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답해서 알려주는 기능 1xx ( Informational ) : 요청이 수신되어 처리중 2xx ( Successful ) : 요청 정상 처리 3xx ( Redirection ) : 요청을 완료하려면 추가 행동이 필요 4xx ( Client Error ) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx ( Server Error ) : 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 ex. 299 ??? -> 2xx ( Suc..
[모든 개발자를 위한 HTTP 웹 기본 지식] 9.HTTP 상태코드 - 공통, 1xx, 2xx, 3xx ( 1/2 ) 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답해서 알려주는 기능 1xx ( Informational ) : 요청이 수신되어 처리중 2xx ( Successful ) : 요청 정상 처리 3xx ( Redirection ) : 요청을 완료하려면 추가 행동이 필요 4xx ( Client Error ) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx ( Server Error ) : 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 ex. 299 ??? -> 2xx ( Suc..
[모든 개발자를 위한 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: 리소스..