HTTP (37) 썸네일형 리스트형 3월 13일 HTTP 캐시 무효화 캐시 무효화 cache-control 확실한 캐시 무효화 응답 -cache-contol : no-cache , no-store , must-revalidate -progma : no-cache HTTP/1.0 하위호환 (이것까지 넣어주어야 한다.) 캐시를 요청하지 안하도 HTTP가 알아서 요청하기도 한다. 캐시가 되어선 안될 데이터의 경우 위 (cache-contol : no-cache , no-store , must-revalidate , progma : no-cache) 헤드를 모두 넣어주어야 한다. 캐시 지시어(directives) - 확실한 캐시 무효화 (무조건 사용) -cache-contol : no-cache 데이터는 캐시해도 되지만 항상 원서버에 검증하고 사용 (이름에 주의) -cache-c.. 3월 13일 프록시 캐시 프록시 캐시 원(origin)서버 (진짜 서버) 에 직접 접근 origin 서버 예를들어 한국에 클라이언트들이 미국에 있는 원서버에 붙는다고 할때 이 경우 원서버에 응답을 접근하는 모든 클라이언트가 500ms씩 응답을 기다려야 한다. 프록시 캐시 도입 첫번째 요청 / private 캐시 예를 들어 클라이언트와 원서버 사이에 프록시 서버를 만들어서 클라이언트가 프록시 서버로 접속하게 만든다. 프록시 서버는 public캐시 클라이언트는 private캐시 요청이 들어오면 클라이언트가 프록시 캐시 서버를 거쳐 원서버에 접근하게한다. 클라이언트와 프록시서버를 연결시키는 방법을 사용하면 이미 데이터가 프록시에 있는한 사용 가능하기 때문에 응답이 빠르다. 프록시에도 없는건 서버에 요청해야 한다. cache-contr.. 3월 13일 HTTP 캐시 조건부 헤더 캐시 조건부 헤더 캐시 제어 헤더 -cache-control : 캐시 제어 -Pragma : 캐시 제어 (하위호환) -Expires : 캐시 유효 기간(하위호환) cache-control - 캐시 지시어(directives) -cache-control : mas-age 캐시 유효기간 , 초단위 -cache-control : no-cache (캐시 데이터를 사용하기 위한 검증절차 필수) 데이터는 캐시해도 되지만 항상 원(origin) 서버에 검증하고 사용 (검증 후 사용) -cache-control : no-store (저장하면 안되는 데이터) 데이터에 민감한 정보가 있으므로 저장하면 안됨 (메모리에서 사용하고 최대한 빨리 삭제) Pragma * (하위호환 하려고 사용) 캐시 제어 (하위호환) -Pragm.. 3월 13일 HTTP 캐시 검증헤더와 조건부 요청2 캐시 검증헤더와 조건부 요청2 검증헤더 -캐시데이터와 서버데이터가 같은지 검증하는 데이터 -lost modified , ETag 조건부 검증헤더 -검증헤더로 조건에 따른 분기 -if-modified-since : last-modified 사용 -if-modified-since : ETag 사용 -조건을 만족하면 200 ok -조건을 만족하지 않으면 304 not modified if-modified-since : 이후에 데이터가 수정되었으면? (굳이 따지면 실패) -데이터 미변경 예시 -캐시 : 2020년 11월 10일 10:00:00 , 서버: 2020년 11월 10일 10:00:00 (미변경) -304 not modified 헤더 데이터간 전송 (body 미포함) -전송 용량 0.1m (헤더 0.1 .. 3월 13일 HTTP 캐시 검증헤더와 조건부 요청1 캐시 검증헤더와 조건부 요청 1.캐시 유효시간이 초과해서 서버에 다시 요청하면 다음 두가지 상황이 나타난다. -서버에서 기준데이터를 변경함 (정말 데이터가 바뀐경우) -서버에서 기준데이터를 변경하지 않음 캐시 시간초과(이미 클라이언트가 가진 데이터를 또 받아야 하는지 검증) 검증헤더 -캐시 만료 후에도 서버에서 데이터를 변경하지 않음 -생각해보면 데이터를 전송하는 대신에 저장해 두었다 캐시를 재사용 할수도 있다, -단 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 방법이 필요하다. 캐시 검증헤더 추가 첫번째 요청 (request) Get /star.jpg (response) HTTP/1.1 200 ok content-type : image/jpeg cache-controller : max-a.. 3월 13일 HTTP 헤더2 캐시와 조건부 요청 캐시 기본 동작 1.캐시가 없을때 (request) Get /star.jpg (response) HTTP/1.1 200 ok content-type : image/jpeg content-length : 34012 (star.jpg) //각 할당된 용량 1.1M 가정 http 헤더 : 0.1M http 바디 : 1.0M (별 이미지) 이때 캐시가 없는 상태에서 요청하여 1.1m의 응답을 받고 다시 요청하면 캐시가 없기 떄문에 1.1M의 응답을 또 받아 총 2.2M를 사용한다. -데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야한다. -인터넷 네트워크는 매우 느리고 비싸다 -느린 사용자 경험 2.캐시적용 (request) Get /star.jpg (response).. 3월 10일 HTTP 쿠키 쿠키 (많이 사용) set-cookie : 서버에서 클라이언트로 쿠키 전달(응답) cookie : 클라이언트가 서버에서 받은 데이터를 쿠키로 저장하고 클라이언트가 서버로 HTTP 요청시 클라이언트는 쿠키에서 데이터를 꺼내 서버로 전달한다. 쿠키 미사용 처음 welcome페이지 접근 (request) get /welcome HTTP/1.1 (response) HTTP/1.1 200 ok 안녕하세요, 손님 로그인 (request) post /login HTTP/1.1 user = 홍길동 (response) HTTP /1.1 200 ok 홍길동님이 로그인 했습니다. 로그인후 welcome 페이지로 접근 (request) get /welcome HTTP/1.1 (response) HTTP/1.1 200 ok 안.. 3월 10일 HTTP 일반정보 HTTP 일반정보 from : 유저 에이전트의 이메일 정보 referer : 이전 웹페이지 주소 user-agent : 유저 에이전트 애플리케이션 정보 server : 요청을 처리하는 오리진 서버의 소프트웨어 정보 data : 메시지가 생성된 날짜 from 유저 에이전트의 이메일 정보 -일반적으로 잘 사용하지않음 -검색엔진 같은 곳에서 주로 사용 -요처에서 사용 referer(정말 많이 사용)(유입경로 분석에 사용) 이전 웹사이트 주소 -현재 요청된 페이지의 이전웹사이트 주소 -a에서 b로 이동한 경우 b를 요청할 떄 refererA를 포함해서 요청 -referer를 사용해서 유입경로 분석가능 -요청에서 사용 user-agent (서버에서 도움이 된다) 유저에이전트 애플리케이션 정보 -user-agent.. 이전 1 2 3 4 5 다음