참고: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching 네트워크를 통해 요청-응답을 수행하는 과정은 느리면서 비용이 많이 든다. 크기가 큰 응답은 클라이언트와 서버 사이에 많은 요청-응답 사이클이 필요하다. 때문에 브라우저가 처리할 수 있는 시기가 지연되고 방문자 또한 데이터 비용이 발생한다. 따라서 가져온 리소스를 캐싱하고 재사용하는 기능은 성능 최적화에 중요한 측면이다. 모든 브라우저에서는 HTTP 캐시 구현이 포함되어있다. 이를 사용하기 위해서는 HTTP 헤더에 캐시 관련 설정을 응답으로 제공하여 브라우저가 캐시할 시점과 기간을 설정하도록 알려주면 된다. 위 캡쳐와 ..
세션은 Stateless한 HTTP 프로토콜의 특성을 보완하기 위한 개념이다. HTTP는 서버와 한번 요청-응답을 주고 받으면 주고 받은 정보를 유지하지 않는다. 그저 정보(요청)를 건네주고 원하는 정보(응답)를 받을 뿐이다. 때문에 한 사이트에 대한 인증 작업을 할 때 번거로움이 따를 수 있다. (매번 요청을 보낼때마다 인증작업을 수행해야하므로...) 따라서 한번 해당 사이트에 인증 작업을 수행한 후 세션으로 서버에서 해당 사용자가 인증되었다는 것을 유지하면 인증에 대한 상태를 계속 유지할 수 있게 된다. 쿠키와의 차이 쿠키도 마찬가지로 Stateless한 HTTP 프로토콜의 특성을 보완하기 위한 개념이다. 단, 세션과는 다음의 차이점이 존재한다. 저장 위치 쿠키는 정보를 클라이언트에 저장한다. 즉, ..
참고: https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies HTTP 쿠키 명세: https://tools.ietf.org/html/rfc6265 Overview HTTP 쿠키는 서벅가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 서버에게서 전송받은 쿠키를 저장했다가 동일한 서버에 재요청시 함께 전송한다. 쿠키는 주로 동일한 브라우저에서 들어왔는지 아닌지 판단할 때 사용한다. 그 외에도 세션관리, 개인화 서비스, 트래킹 목적으로 사용된다. Cookie 생성 HTTP 요청 수신시 서버는 응답과 함께 Set-Cookie 헤더를 전송할 수 있다. 쿠키는 보통 브라우저에 저장되며 같은 서버에 보내는 요청은 Cookie라는 헤더를 통해 Cookie..
참고: https://developer.mozilla.org/ko/docs/Web/HTTP/Messages HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다. 메시지에는 클라이언트에서 서버로 전달되는 요청(request)과 서버에서 클라이언트로 전달되는 응답(response)가 있다. HTTP 메세지는 ASCII로 인코딩된 텍스트 정보이며 여러 줄로 되어있다. HTTP Request HTTP Request Message는 Request Line, Message Header, Message Body로 이뤄져있다. 모든 요청은 마지막에 개행을 가지며 Header와 Body 사이에도 개행으로 구분한다. Request Line {HTTP Method} {요청 타겟} {HTTP Version}형..