본문 바로가기
반응형

{ Backend, Server }/HTTP7

[HTTP] HTTP 헤더 - (2) 캐시와 조건부 요청 캐시가 필요한 이유 - 데이터가 변경되지 않아도 동일한 데이터를 계속 네트워크를 통해 다운로드 받아야한다. - 인터넷 네트워크는 느리다 => 결국 느린 사용자 경험 캐시 작동 방식 - 최초 요청으로 서버로부터 받은 응답 결과를 웹브라우저는 브라우저 캐시에 저장 - 이 응답 메시지에는 캐시 유효 시간(cache-control: max-age=60)이 있다. - 이후 동일한 요청이 있을 때 캐시 유효 시간을 검증하여 유효하다면 캐시에서 이를 조회하면 된다. - 만약 유효 시간이 초과했다면? => 서버에 다시 요청하여 데이터를 받으면 된다. 근데 유효 시간이 초과해서 서버에 다시 요청을 했을 때, 서버의 데이터가 변경되었다면 당연히 데이터를 새로 받아야하겠지만, 변하지 않았을 경우 브라우저 캐시에 있는 캐시를.. 2022. 1. 8.
[HTTP] HTTP 헤더 - (1) 일반 헤더 HTTP 헤더 구조 - 용도 : HTTP 전송에 필요한 모든 부가정보 - 표준 헤더가 너무 많음 - 필요시 임의의 헤더 추가 가능 최신 스펙에서는 표현이라는 단어를 사용한다. 표현은 요청이나 응답에서 전달할 실제 데이터를 의미한다. 표현 헤더(HTTP 헤더)는 표현 데이터(메시지 본문)를 해석할 수 있는 정보를 제공해준다. 표현 • Content-Type: 표현 데이터의 형식 - 예) text/html;charset=utf-8 - application/json - image/png • Content-Encoding: 표현 데이터의 압축 방식 - 표현 데이터를 압축하기 위해 사용 - 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가 - 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제 - 예) gzi.. 2022. 1. 7.
[HTTP] HTTP 상태 코드 상태코드란? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 => 실무에서 볼 일이 거의 없음 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 299같은 모르는 상태 코드가 오더라도 클라이언트는 상위 상태코드로 해석해서 처리함(299->2xx) 2xx (Successful) : 클라이언트의 요청을 성공적으로 처리 - 200 OK : 요청 성공 - 201 Cre.. 2022. 1. 7.
[HTTP] HTTP 메서드 활용(데이터 전송 방식, HTTP API 설계 예시) 클라이언트에서 서버로 데이터 전송하는 방식은 크게 2가지 1. 쿼리 파라미터를 통한 데이터 전송 - GET - 주로 정렬 필터(검색어) 2. 메시지 바디를 통한 데이터 전송 - POST, PUT PATCH - 회원가입, 상품 주문, 리소스 등록 등 클라이언트에서 서버로 데이터 전송 - 4가지 상황 1. 정적 데이터 조회 - GET을 이용하며, 쿼리 파라미터 필요없음 2. 동적 데이터 조회 - GET을 이용하며, 쿼리 파라미터 사용 3. HTML Form 데이터 전송(HTML Form 전송은 GET, POST만 지원) - POST 전송 - 저장 : 웹브라우저가 Form을 이용해 HTTP 요청 메시지 생성 (Content-Type: application/x-www-form-urlencoded 사용) - GE.. 2022. 1. 6.
[HTTP] HTTP 메서드의 종류와 속성(GET, POST, PUT, PATCH, DELETE) HTTP API 설계 시작하기 - 요구사항 : 회원 등록, 수정, 조회, 삭제 기능을 가지는 회원 정보 관리 API가 필요하다. 1) 최초 설계 다음과 같이 URI을 설계했다. 이것이 좋은 설계일까? No API URI 설계에서 가장 중요한 것은 리소스 식별이다. 회원을 등록, 수정, 조회하는 행위는 리소스가 아니다. 회원 자체가 바로 리소스다. 이 회원 리소스를 URI에 매핑하면 된다. 2) 개선한 설계 리소스와 행위로 나누자. 리소스 : 회원 행위 : 조회, 등록, 삭제, 변경 그럼 이들을 어떻게 구별해야 되지? HTTP 메서드 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELET.. 2022. 1. 6.
[HTTP] HTTP 기본(HTTP의 특징과 HTTP 메시지 구조) HTTP란? HTTP - HyperText Transfer Protocol 현재 다양한 버전이 있지만 HTTP/1.1 버전을 가장 많이 사용하며, 가장 중요한 버전이다. 이후의 HTTP/2와 HTTP/3는 성능 개선에 초점을 맞춤 HTTP의 특징 1. HTTP 메시지에는 거의 모든 것을 전송할 수 있다. - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML (API) - 거의 모든 형태의 데이터 전송 가능 - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용. 2. 클라이언트 서버 구조 - 클라이언트가 서버에 요청을 보내고, 서버가 응답을 해주는 Request Response 구조 3. 무상태(stateless) 프로토콜 - 서버가 클라이언트의 상태를 보존하지 않음 => .. 2022. 1. 6.
반응형