캐시 기본 동작 캐시 적용 X 캐시가 없는 경우, 모든 요청에 대해서 데이터를 전달 문제점 데이터가 변경되지 않아도, 계속 네트워크를 통해 데이터를 다운로드 → 브라우저 로딩 속도 감소, 느린 사용자 경험 .. 캐시 적용 O 서버에서 데이터를 응답할 때 캐시에 대한 정보를 전달 클라이언트는 응답 결과를 캐시에 저장 이후 동일한 요청에 대해 캐시에서 데이터를 조회해서 가져온다. 캐시 시간 초과 서버에서 캐시의 만료 시간을 설정할 수 있다. cache-control: max-age=60 클라이언트에서 캐시 만료가 된 후에 요청을 하게 되는 경우, 서버에게 데이터를 요청하게 된다. 문제점 서버에서 데이터가 변경되지 않았음에도 캐시 만료가 되면 다시 데이터를 재전송해줘야 한다. 검증 헤더와 조건부 요청 1 검증..
HTTP
HTTP 헤더 개요 HTTP 전송에 필요한 모든 부가정보 ex) 메세지 바디의 내용, 메세지 바디의 크기, 압축, 인증, 요청 … HTTP body - RFC7230 메세지 본문을 통해 표현 데이터 전달 메세지 본문 = 페이로드(payload) 표현 : 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 데이터 유형(html, json), 데이터 길이, 압축 정보 .. 표현 content-type : 표현 데이터의 형식 content-encoding : 표현 데이터의 압축 방식 content-language : 표현 데이터의 자연 언어 content-length : 표현 데이터의 길이 content-type 표현 데이터의 형식 설명 미디어 타입, 문자 인코딩 ex)..
HTTP 상태코드 소개 추후에 새로운 상태코드가 나타나도 상위 상태코드로 해석해서 처리할 수 있다. 2xx - 성공 200 : OK 클라이언트에 대한 요청이 잘 처리된 경우 201 : created 클라이언트 요청이 성공해, 새로운 리소스가 생성된 경우 생성된 리소스는 응답의 Location 헤더 필드로 식별 202 : accepted 요청이 접수되었지만 처리가 완료되지 않은 경우 배치 처리 등에서 사용 → 현재 바로 처리를 하지 않는 경우 204 : No content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없는 경우 글 작성 후 save 버튼을 누른 경우 → save 버튼의 결과로 아무 내용이 없어도 된다. 3xx - 리다이렉션 요청을 완료하기 위해 유저 에이전트의 ..
클라이언트에서 서버로의 데이터 전송 데이터 전달 방식 쿼리 파라미터를 통한 데이터 전송 : GET 주로 정렬 필터(검색어) 메세지 바디를 통한 데이터 전송 : POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 정적 데이터 조회 이미지, 정적 텍스트 문서 조회는 GET 사용 정적 데이터는 쿼리 파라미터 없이 리소스 경로로 단순히 조회 가능 동적 데이터 조회 쿼리 파라미터 사용 쿼리 파라미터를 기반으로 정렬 필터해서 결과를 동적으로 생성 주로 검색, 게시판 목록에서 정렬 필터 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 HTML FORM 데이터 전송 html form 태그를 통해 POST 요청 생성 GET으로 요청을 생성할 수도 있지만, GET은 ..
HTTP API 설계 요구사항 회원 정보 관리 API 회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제 API URI 설계 방법 URI를 설계할 때 가장 중요한 것은, 리소스 식별이다. 리소스 : 행위의 주체가 되는 객체 회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제 → 리소스 : 회원 행위는 HTTP 메서드를 통해 구분 즉, 리소스와 해당 리소스를 대상으로 하는 행위를 분리 리소스 : 회원 → URI 행위 : 조회, 등록, 삭제, 변경 → HTTP 메서드 HTTP 메서드 - GET, POST HTTP 메서드 종류 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스를 대체, 해당 리소스가 없으면 생성 PATCH : 리소스의 부분 ..
모든 것이 HTTP HTTP란 HTTP(HyperText Transfer Protocol) : 기존 HyperText를 전달하기 위해 만들어진 프로토콜 현재는 대부분의 데이터를 HTTP를 통해 전달 기반 프로토콜 TCP : HTTP/1.1, HTTP UDP : HTTP/3 HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜(스테이트리스), 비연결성 HTTP 메세지를 통해 통신 단순함, 확장 가능 클라이언트 서버 구조 Request Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 장점 클라이언트와 서버의 역할 분리가 철저하게 될 수 있다. 클라이언트 : UI/UX에 집중 서버 : 비즈니스 로직에 집중 무상태 프로토콜(Stateless prot..