1. 캐시 제어 헤더클라이언트와 서버가 어떻게 캐시를 관리할 것인지를 정의한다. 1) Cache-Control max-age=: 리소스를 캐시할 수 있는 최대 시간을 초 단위로 지정한다.no-cache: 데이터는 캐시해도 되지만, 캐시된 복사본을 사용하기 전에 원서버(origin)에 검증을 요청한다.no-store: 데이터에 민감한 정보가 있으므로 저장하면 안됨. 캐시하지 않는다.public: 응답이 공개 캐시에 의해 저장될 수 있음.private: 응답이 사용자의 브라우저 캐시에만 저장되어야 함.must-revalidate: 캐시가 만료된 후, 사용하기 전에 반드시 원서버(origin)로부터 검증을 받아야 함.* 참고public과 private 지시어는 캐시 데이터가 어디에 저장되어야 하는지 구분하기 ..
1.캐시 기본 동작✔️HTTP 요청 흐름 비교 ▪️ 캐시 없을 때: 사용자가 서버에 직접 요청하고 서버에서 처리 후 사용자에게 다시 데이터를 보내는 과정을 나타낸다. 이 경우 모든 요청은 서버에서 처리되어야 한다. ▪️ 캐시 있을 때: 사용자가 데이터가 필요할 때 캐시를 먼저 확인하고, 데이터가 캐시에 있으면 서버를 거치지 않고 바로 캐시에서 데이터를 받아 사용하는 과정을 보여준다. ✅캐시가 없을 때 특징데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운받아야한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다느린 사용자 경험✅ 캐시가 있을 때 특징HTTP/1.1 200 OKDate: Wed, 15 May 2024 12:30:00 GMTContent-Type: image/j..
1. HTTP 헤더의 역할HTTP 전송에 필요한 클라이언트와 서버 간의 요청 및 응답을 구체화하고, 데이터 형식, 인증, 연결 관리 등과 같은 부가 정보를 제공한다. 2. HTTP 요청 예시✔️표현 헤더- 표현 데이터를 해석할 수 있는 정보를 제공한다. ✔️메시지 본문- 표현 데이터를 전달 3. 표현 헤더데이터의 처리 방식과 관련된 중요한 정보를 제공한다. ✔️Content-Type- HTTP 메시지 본문의 미디어 타입을 지정- 예를 들어, 'text/html;charset=utf-8', 'application/json', 'image/jpeg' 등이 있다. 이를 통해 서버와 클라이언트는 본문 내용을 어떻게 해석할 지 알 수 있다. ✔️ Content-Encoding- 메시지 본문이 어떤 방식으로 인코..
1. HTTP 상태코드란?클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 2. HTTP 상태코드의 필요성 및 활용성공코드 2xx : 요청 정상처리. 클라이언트에게 API 요청이 성공적으로 처리되었음을 알린다. 데이터를 적절히 표시하거나, 사용자에게 성공 메시지를 보여줄 수 있다. 리다이렉션 코드 3xx : 요청을 완료하려면 추가행동이 필요. 클라이언트에게 다른 페이지로 리다이렉션하도록 지시한다. 클라이언트 오류 코드 4xx : 클라이언트 오류. 요청을 수정하여 다시 시도하도록 요청한다. 예를 들어, 폼 검증 실패, 필수 정보 누락 시 클라이언트에게 통지할 수 있다.서버 오류 코드 5xx : 서버 오류. 서버 문제가 있음을 클라이언트에게 알리고 문제가 해결될 때까지 기다리거나, 필요한 경우 ..
1. 클라이언트에서 서버로 데이터 전송쿼리 파라미터를 통한 데이터 전송메시지 바디를 통한 데이터 전송1) 쿼리 파라미터를 통한 데이터 전송- GET - 주로, 정렬 필터에서 사용한다. 2) 메시지 바디를 통한 데이터 전송- POST, PUT, PATCH- 회원 가입, 상품 주문, 새로운 리소스 등록, 리소스 변경 2. 클라이언트 -> 서버 데이터 전송/ 4가지 상황 예시정적 데이터 조회 (이미지, 정적 텍스트 문서)동적 데이터 조회 ( 주로 검색, 게시판 목록에서 정렬 필터 혹은 검색어 조회)HTML Form을 통한 데이터 전송HTTP API를 통한 데이터 전송1) 정적 데이터 조회✔️ 메서드 GET ✔️ 설명 GET은 서버의 데이터를 변경하지 않으므로 안전하고 멱등하다. ✔️ 예시 사용자가 웹 브라우..
1. 안전한 메서드 (Safe Methods)✔️정의- 서버에 어떠한 변경도 일으키지 않는 메서드.이 메서드들을 사용하는 HTTP 요청은 읽기 전용 요청으로 간주된다. ✔️ 메서드- GET ✔️ 설명- 이 메서드는 데이터를 조회하는 데에 사용되며, 데이터를 변경하지 않기 때문에 여러번 요청해도 문제가 없다. 2. 멱등한 메서드 (Idempotent Methods)✔️ 정의- 한 번의 요청이든 여러 번의 요청이든 같은 결과를 보장하는 메서드.✔️ 메서드- GET, PUT, DELETE✔️ 설명- 예를 들어, DELETE 요청을 한 번 보내든 여러 번 보내든 결과가 같아야한다.그러나, POST는 멱등이 아니어서 여러번 요청하면 같은 데이터가 여러 번 생성될 수 있다.PATCH는 사용 방식에 따라 멱등성이 달..
1. HTTP API를 만들어보자⭐요구사항 - 회원 정보를 관리하는 API를 만들어보자.회원이라는 개념 자체가 리소스다!리소스를 식별할 때는 회원이라는 리소스만 식별하면 된다. 회원 목록 조회 /members회원 상세 조회 /members/{id}회원 등록 /members/{id}회원 수정 /members/{id}회원 삭제 /members/{id} 🤔그럼 저 URI가 같은 것들은 어떻게 구분하지?💡리소스와 행위를 분리하면 된다.리소스 - 회원행위 - 조회, 등록, 수정, 삭제 2. HTTP 메서드 ( 행위 )GET : 리소스 조회POST : 요청 데이터 처리, 주로 등록에 사용PUT : 리소스를 대체, 해당 리소스가 없으면 생성PATCH : 리소스 부분 변경DELETE : 리소스 삭제 1) GET- ..
1. HTTP란?HTTP 메시지에 모든 형태의 데이터를 담아 전송할 수 있다. ⭐HTTP로 전송할 수 있는 것들HTML, TEXT이미지, 음성, 영상, 파일JSON, XML(API)서버간 주고 받는 데이터2. 클라이언트 서버 구조HTTP는 클라이언트, 서버 구조로 되어있다. 클라이언트는 서버에 Request를 보내고 응답을 대기.서버가 Request에 대한 결과를 만들어서 Response한다. 3. Stateful, Stateless1) Stateful(유상태)란?클라이언트의 상태정보를 서버에 저장하여 관리하는 것. ✔️장점- 각 요청에 필요한 데이터 전송량이 줄어든다.- 사용자의 이전 상태를 알고 있기 때문에 맞춤형 서비스를 제공하기 쉽다. ✔️ 단점- 상태를 유지관리 해야하므로 시스템이 복잡해진다...