본문 바로가기
반응형

개발하는고양이196

HTTP 상태코드 상태 코드란? 클라리언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx Informational 요청이 수신되어 처리 중 - 거의 사용되지 않음. 2xx Successful 요청 정상 처리 3xx Redirection 요청을 완료하려면 추가 행동이 필요 4xx Client Error 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx Server Error 서버 오류, 서버가 정상 요청을 처리하지 못함 2xx - 클라이언트의 요청을 성공적으로 처리 200 OK - 요청 성공 201 Created - 요청 성공해서 새로운 리소스가 생성됨 202 Accepted - 요청이 접수되었으나 처리가 완료되지 않았음 ex. 배치 처리 등에서 사용/ 요청 접수 후 1시간 뒤에 배피 프로.. 2022. 3. 28.
HTTP API 설계 HTTP API - 컬렉션 - POST 기반 등록 ex) 회원 관리 API 제공 회원 관리 시스템 API 설계 - POST 기반 등록 회원 목록 /members GET 회원 등록 /members POST 회원 조회 /members/{id} GET 회원 수정 /members/{id} PATCH, PUT, POST 회원 삭제 /members/{id} DELETE POST - 신규 자원 등록 특징 - 클라이언트는 등록될 리소스의 URI를 모른다. - POST /members - 서버가 새로 등록된 리소스 URI를 생성해준다. - HTTP/1.1 201 Created Location: /members/100 - 컬렉션(Collection) - 서버가 관리하는 리소스 디렉토리 - 서버가 리소스의 URI를 생성하고.. 2022. 3. 28.
HTTP 메서드 활용 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지이다. 1. 쿼리 파라미터를 통한 데이터 전송 - GET - 주로 정렬 필터(검색어) 2. 메시지 바디를 통한 데이터 전송 - POST, PUT, PATCH - 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 정적 데이터 조회 - 이미지, 정적 텍스트 문서 - 조회는 GET 사용 - 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회 - 주로 검색, 게시판 목록에서 정력 필터(검색어) - 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 - 조회는 GET 사용 - GET은 쿼리 파라미터를 사용해서 데이터를 전달 HTML Form을 통한 데이터 전송 - HTML Form .. 2022. 3. 28.
HTTP 메서드 속성(안전, 멱등, 캐시) 안전(Safe) - 호출해도 리소스를 변경하지 않는다. Q. 그래도 계속 호출해서, 로그 같은게 쌓여서 장애가 발생할 경우? A. 안전은 해당 리소스만 고려한다. 해당 부분까지 고려하지 않는다. 멱등(Idempotent) - f(f(x)) = f(x) - 한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다. - 멱등 메서드 GET 한 번 조회하든, 두 번 조회하든 같은 결과가 조회된다. PUT 결과를 대체한다. 따라서 같은 요청을 여러번 해도 최종 결과는 같다. DELETE 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다. POST 멱등이 아니다. 두 번 호출하면 같은 결제가 중복해서 발생할 수 있다. - 활용 - 자동 복수 메커니즘 - 서버가 TIMEOUT 등으로 정상 응답.. 2022. 3. 28.
HTTP 메서드 종류 및 좋은 API URI 설계 회원 정보 관리 API를 아래와 같이 만든다고 가정해보자. - 회원 목록 조회 - 회원 조회 - 회원 등록 - 회원 수정 - 회원 삭제 API URI 설계 - URI(Uniform Resource Identifier) - 회원 목록 조회 /read-member-list - 회원 조회 /read-member-by-id - 회원 등록 /crate-member - 회원 수정 /update-member - 회원 삭제 /delete-member 위 설계는 좋은 URI 설계일까? 설계에서 가장 중요한 것은 리소스 식별!! API URI 고민 - 리소스의 의미는? 회원을 등록하고 수정하고 조회하는게 리소스가 아니다. 회원이라는 개념 자체가 바로 리소스이다. - 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정.. 2022. 3. 25.
HTTP 메시지 시작 라인 1. 요청 메시지 GET /search?q=hello&hl=ko HTTP/1.1 Host:www.google.com start-line = request-line / status-line request-line = method SP(공백) request-target SP HTTP-version CRLF(엔터) - GET(조회를 의미) : HTTP 메서드 - /search?q=hello&hl=ko : 요청 대상 - 1.1 : HTTP Version 1.1. 요청 메시지 - HTTP 메서드 - 종류 : GET, POST, PUT, DELETE... - 서버가 수행해야 할 동작을 지정 ex. GET : 리소스 조회, POST : 요청 내역 처리 1.2. 요청 메시지 - 요청 대상 - absolute.. 2022. 3. 25.
Stateful, Stateless 차이, 비연결성(connectionless) 무상태 프로토콜 - 스테이스리스(Stateless) - 서버가 클라이언트의 상태를 보전하지 않는다. - 장점 : 서버 확장성 높음(스케일 아웃) - 단점 : 클라이언트가 추가 데이터를 전송해야 한다. Stateful, Stateless 차이 동영상 강의 사이트를 예로 들었을 때, - 사용자가 인프런에 로그인 후(로그인 역시 로그인 상태를 계속 유지하므로 Stateful), 동영상을 시청하다가 02분24초에 동영상을 종료 > 다시 재생 시 stateful : - 사용자가 종료한 시점이 서버에 저장되어 있고, 다시 동영상을 재생시켰을 때 서버에서 동영상 정보 및 종료 시점 등을 받아와 종료한 시점부터 재생 - 서버 증설 시 : #A 서버에 사용자 종료한 시점이 저장되어 있을 경우, #B서버에서는 종료한 시점.. 2022. 3. 25.
HTTP란? HTTP 메세지/역사/특징 HTTP(HyperText Transfer Protocol) HTTP 메세지는 모든 것을 전송할 수 있다. - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML (API) - 거의 모든 형태의 데이터 전송 가능 - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/0.9 1991년 GET 메서드만 지원, HTTP 헤더 지원 안 함 HTTP/1.0 1996년 메서드, 헤더 추가 HTTP/1.1 1997년 가장 많이 사용, 제일 중요한 버전! (RFC2068(1997) > RFC2616(1999) > RFC7230~7235(2014) HTTP/2 2015년 성능 개선 HTTP/3 진행중 TCP 대신에 UDP 사용, 성능 개선 TCP : HTTP/1.1,.. 2022. 3. 25.
웹 브라우저 요청 흐름 https://www.google.com:443/search?q=hello&hl=ko 1. 웹브라우저에서 www.google.com:443 (https port 생략 가능) 를 입력 후 엔터! 2. DNS 조회(www.google.com 도메인에 해당하는 아이피를 조회 후 응답) 3. http 요청 메세지 생성 GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com 4. http 메세지 전송 4-1. TCP/IP 패킷 생성(출발지 IP, PORT/목적지 IP, PORT 등 정보 포함) 4-2. 패킷 안에 전송 데이터 http 메세지 포함 4-3. 요청 패킷 전달 4-4. 요청 패킷 구글 서버에 도착 5. http 응답 메세지 생성 HTTP/1.1 200 OK .. 2022. 3. 25.
반응형