WEB(10)
-
[WEB] 브라우저 이미지 캐시 방지
웹 페이지에 대한 속도 테스트나 이미지를 Ajax로 불러오다가 캐시에 의한 CORS 에러 등 여러 이유들에 의해 브라우저가 이미지를 캐싱하지 않도록 하고 싶을 때가 있다. 하지만 직접 서버에서 캐시 관련 헤더를 설정할 수 없거나 다른 업체의 서버를 사용하는 경우 결국 프론트엔드에서 처리해야 한다. 강력 새로고침(ctrl + F5)을 통해 임시 방편의 해결은 가능하지만 매번 이럴 수도 없고. 무슨 방법이 없을까 고민하겠지만 의외로 방법은 간단하다. 브라우저는 이미지를 완전히 같은 url 이름으로 불러들일 때 캐시한 이전 이미지를 불러온다. 이러한 특성을 이용하여 url의 쿼리스트링 값만 다르게 주는 방식으로 캐시되지 않은 똑같은 이미지를 불러오도록 하는 편법을 쓸 수 있다. 예를 들어 picture.jp..
2025.05.13 -
[WEB] URL과 URI와 URN
브라우저를 통해 웹을 이용해 온 우리에게 URL이라는 단어는 익숙할 것이다. 하지만 가끔 뭔가 비스무리하면서도 다른 듯한 URI나 URN이라는 단어를 사용하기도 하는데 이번 포스트에서는 URL과 URI, URN의 명확한 차이에 대해 알아보려 한다. 위 그림에서 볼 수 있듯 URI는 URN과 URL을 포함하는 개념이다. 이들의 각 뜻은 다음과 같이 정의할 수 있다. URI: 자원의 식별자URL: 위치(Location)URN: 이름(Name) URI(Uniform Resource Identifier) 통합 자원 식별자(Uniform Resource Identifier)는 인터넷에 있는 자원을 어디에 있는지 자원 자체를 식별하는 방법이다.Uniform: 리소스를 식별하는 통일된 방식Resou..
2024.10.24 -
[WEB] HTTP 메시지
개발자 도구의 네트워크 창에서 서버로부터 다운 받은 파일을 눌러 보면 아래와 같이 Headers 탭에 적혀 있는 것을 본 적 있을 것이다. 이는 클라이언트와 서버 간에 HTTP 메시지를 통해 통신한 이력이라고 이해할 수 있다. Request Headers는 클라이언트가 서버에 보내는 HTTP 메시지 이력이며, Response Headers는 서버가 클라이언트에 응답하는 HTTP 메시지 이력이다. HTTP 메시지 구조 HTTP 메시지는 기본적으로 위에서부터 차례대로 시작 라인(Start Line), 헤더(Header), 공백 라인(Empty Line 또는 Blank Line), 바디(Message Body)로 구성되어 있다. 이중 공백 라인의 경우 HTTP 메시지 값 구분을 하기 위한 라인이므로 단..
2024.10.23 -
[WEB] HTTP 상태 코드
HTTP Status CodeHTTP의 상태 코드는 클라이언트가 보낸 HTTP 요청이 성공했는지 실패했는지 서버에 알려주는 숫자 코드다. 개발자 도구의 Network 탭을 보면 아래와 같이 Status 숫자 코드로 요청의 결과를 간략히 나타내 주는데 클라이언트를 다루는 입장에서는 이 숫자를 보고 곧바로 결과를 유추할 수 있게 된다. HTTP 상태 코드는 3자리 숫자로 이루어져 있으며 100번대부터 500번대까지 존재한다. 그리고 각 상태코드의 첫 번째 자리는 최상위 코드가 되어 다음과 같이 5개의 그룹으로 나뉘어 관리된다. 1XX: 요청이 수신되어 처리중 2XX: 요청 정상 처리 3XX: 요청을 완료하려면 추가 행동이 필요 4XX: 클라이언트 오류. 잘못된 문법 등으로 서버사 요청을 수행할 수 없..
2024.10.17 -
[WEB] HTTP의 Connectionless
비연결성(Connectionless)HTTP는 기본적으로 연결을 유지하지 않는 모델이다. 즉 서버와 클라이언트의 connection을 지속하지 않는다.1시간 동안 수천 명 이상이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수 십 개 이하로 적다.이러한 비연결성의 특징으로 인해 서버 자원을 효율적으로 사용할 수 있다. Stateless와 Connectionless의 차이Stateless(무상태성): 필요한 상태에 대한 정보를 클라이언트가 가지고 오기 때문에 클라이언트의 요청에 어느 서버가 응답해도 상관 없음. 따라서 클라이언트의 요청이 대폭 증가하면 서버를 증설해 해결 가능.Connectionless(비연결성): 클라이언트가 서버에 요청을 하고 응답을 받으면 바로 TCP/IP 연결을 끊어 ..
2024.10.14 -
[WEB] HTTP의 Stateful과 Stateless
클라이언트(client)와 서버(server) 간의 통신을 상태 유지하느냐(stateful), 상태 유지하지 않느냐(stateless) 같은 말을 한 번쯤은 들어봤을 것이다. 여기서 '상태'라는 건 어떤 정보를 말하는 거 같은데 stateful과 stateless에 대해 좀 더 파악해 보는 시간을 가져보려 한다. Stateful(상태 유지) 상태 유지라는 건 클라이언트와 서버 사이의 관계에서 서버가 클라이언트의 상태를 보존하는 것을 의미한다. 클라이언트와 서버 간에 송수신을 하며 단계별 과정들을 진행하는 데 있어 서버에서 클라이언트가 이전 단계에서 제공한 값을 저장하고 다음 단계에서도 저장한 상태이다. 대표적인 예로 홈페이지에서 회원 로그인을 하면 페이지를 이동해도 서버는 클라이언트의 상태를 유지(..
2024.10.11