📚 Computer Science/Network

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더2 (캐시와 조건부 요청) - 캐시 무효화

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. Cache-Control 💡 확실한 캐시 무효화 응답 Q. 캐시를 적용 안하면 캐시가 안되는것이 아닌가? A. 캐시를 적용안해도 get 요청인 경우 웹브라우저가 임의로 적용하는 경우도 있다. 1) Cache-Control: no-cache, no-store, must-revalidate 2) Pragma: no-cache - HTTP 1.0 하위 호환 ex) 통장 잔고 💡 캐시 지시어(directives) - 확실한 캐시 무효화 1) Cache-Control: no-cache - 데이터는 캐시해도 되지만, 항상 원 서버에 검증하고 사용(이름에 주의!) 2) Cache-Control: no-store -..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더2 (캐시와 조건부 요청) - 프록시 캐시

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 원(origin) 서버 직접 접근 - 브라우저에서 원서버에 이미지를 다운로드 받는 시간이 약 0.5초 걸린다고 가정해보자. 그렇다면 응답이 너무 느려진다는 단점이 있다. 2. 프록시 캐시 도입 👉 첫 번째 요청 1) 한국 어딘가 프록시 캐시 서버를 넣어놓고 브라우저에서 요청을 하면 미국 원서버에 직접 요청을 하지 않고 프록시 서버에 거쳐서 오게 된다. 브라우저가 프록시 캐시 서버에 접근하면 응답을 빠르게 받을 수 있다. ex) 유튜브 인기 없는 동영상을 다운로드 받게 된다면 속도가 느리지만 인기 있는 동영상인 경우 프록시 캐시 서버에 있기 때문에 속도가 빠르다. 2) 보통 처음 데이터에 접근을 하게 되..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더2 (캐시와 조건부 요청) - 캐시와 조건부 요청 헤더

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 캐시 제어 헤더 👉 Cache-Control ⭐⭐ 캐시 제어, 캐시 지시어(directives) - 캐시 유효 시간, 초 단위 (유연하게 설정 가능) - 데이터는 캐시해도 되지만, 항상 원(origin) 서버에 검증하고 사용 - 데이터에 민감한 정보가 있으므로 저장❌ (메모리에서 사용하고 최대한 빨리 삭제) 👉 Pragma 캐시 제어(하위 호환) - HTTP 1.0 하위 호환 - 현재는 거의 사용❌, 하위 호환으로 필요한 경우 사용할 때도 있음 👉 Expires 캐시 만료일 지정(하위 호환) - 캐시 만료일을 정확한 날짜로 지정 - HTTP 1.0 부터 사용 - 지금은 더 유연한 Cache-Contro..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더2 (캐시와 조건부 요청) - 검증 헤더와 조건부 요청2

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 검증 헤더와 조건부 요청 💡 개념과 사용 1) 검증 헤더 - 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터 - Last-Modified , ETag 2) 조건부 요청 헤더 - 검증 헤더로 조건에 따른 분기 - If-Modified-Since: Last-Modified 사용 - If-None-Match: ETag 사용 - 조건이 만족하면 200 OK - 조건이 만족하지 않으면 304 Not Modified 🔎 예시 If-Modified-Since: 이후에 데이터가 수정되었으면? 1) 데이터 미변경 예시 - 캐시: 2020년 11월 10일 10:00:00 vs 서버: 2020년 11월 10일 10:0..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더2 (캐시와 조건부 요청) - 검증 헤더와 조건부 요청1

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 캐시 시간 초과 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 1) 서버에서 기존 데이터를 변경⭕ - 서버에서 변경된 데이터를 받는다. 2) 서버에서 기존 데이터를 변경❌ - 데이터를 전송하는 대신에 저장해 두었던 캐시를 재사용 할 수 있다. - 단, 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 수 있는 방법이 필요 2. 검증 헤더 추가 👉 첫 번째 요청 1) 웹브라우저에서 star.jpg를 요청하면, 서버는 cache-control과 Last-Modified(데이터 마지막 수정된 시간 = 데이터 최종 수정일)을 HTTP 헤더에 추가하여 응답한다. 2) ..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더2 (캐시와 조건부 요청) - 캐시 기본 동작

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 캐시가 없을 때 👉 첫 번째 요청 1) 웹브라우저에서 /star.jpg 이미지를 서버에 요청하면, 서버에서 HTTP 헤더(0.1M) + HTTP 바디(1.0M) star.jpg에 대한 응답을 보낸다. 2) 웹브라우저에 이미지가 표시된다. 👉 두 번째 요청 1) 웹브라우저에서 /star.jpg 이미지를 서버에 두번째 요청하면, 서버에서 HTTP 헤더(0.1M) + HTTP 바디(1.0M) star.jpg에 대한 응답을 보낸다. 2) 웹브라우저에 이미지가 표시된다. 💡 캐시가 없을 때 특징 - 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. - 인터넷 네트워크는 매우 느리고..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - 인증, 쿠키

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 인증 👉 Authorization 클라이언트 인증 정보를 서버에 전달 - value 값은 인증 방식(OAuth)에 따라 다양함(필요하면 검색) 👉 WWW-Authenticate 리소스 접근시 필요한 인증 방법 정의 - 401 Unauthorized 응답과 함께 사용 2. 쿠키 ⭐⭐ • Set-Cookie: 서버 -> 클라이언트 쿠키 전달(응답) • Cookie: 클라이언트가 서버에서 받은 쿠키를 저장, 클라이언트 -> 서버 쿠키 전달(요청) 👉 쿠키 미사용 1) 처음 welcome 페이지 접근 - 로그인 하지 않은 사용자가 웹 브라우저에서 /welcome 으로 요청하면 서버에서 안녕하세요 손님으로 응답..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - 일반 정보, 특별한 정보

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 일반정보 👉 From 유저 에이전트의 이메일 정보 - 일반적으로 잘 사용되지 않음 - 검색 엔진 같은 곳에서, 주로 사용 - 요청에서 사용 👉 Referer 이전 웹 페이지 주소 - 현재 요청된 페이지의 이전 웹 페이지 주소 - A -> B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청 - Referer를 사용해서 유입 경로 분석 가능 - 요청에서 사용 참고) referer는 단어 referrer의 오타 👉 User-Agent 유저 에이전트 애플리케이션 정보 - 클라이언트의 애플리케이션 정보(웹 브라우저 정보, 등등) - 통계 정보 - 어떤 종류의 브라우저에서 장애가 발생하는지 파..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - 전송 방식

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 단순 전송 Content-Length 설정 - Content-Length 알 수 있을 때 사용 - 데이터 전체를 한 번에 보낼 때 사용 2. 압축 전송 Content-Encoding 설정 - 전송해야하는 데이터가 커서 압축해서 보낼 때 사용(압축 방식은 다양함) 3. 분할 전송 Transfer-Encoding 설정, Content-Length 설정X - 대용량 데이터를 클라이언트에 보낼 때, 요청이 모두 처리되기 전까지 총 크기를 알 수 없을 때 사용 - r\n\ : 분할 전송의 끝을 표현 4. 범위 전송 Range 설정해서 요청 -> Content-Range 설정해서 응답 - 어떠한 이유로 중간에 재..

📚 Computer Science/Network

[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 (일반 헤더) - 콘텐츠 협상

인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.😊😊 1. 콘텐츠 협상(Contents Negotiation) 클라이언트가 선호하는 표현 요청 - 협상 헤더는 요청시에만 사용 1) Accept : 클라이언트가 선호하는 미디어 타입 전달 2) Accept-Charset: 클라이언트가 선호하는 문자 인코딩 3) Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 4) Accept-Language: 클라이언트가 선호하는 자연 언어 👉 Accept-Language 적용 전 한국어 브라우저 사용하여 클라이언트에서 GET /event 요청을 보내면 서버는 클라이언트가 어떤 언어를 요청한 지 모르기 때문에 기본 언어인 영어로 응답한다. 👉 Accept-Lang..

ryang x2
'📚 Computer Science/Network' 카테고리의 글 목록