Infrastructure (251) 썸네일형 리스트형 [HTTP] 헤더 - 3 (일반 정보) HTTP 헤더의 일반적인 정보에 대해서 알아본다. From 유저 에이전트의 이메일 정보를 표시한다. 검색 엔진등에서 주로 사용된다. 요청시에만 사용된다. 일반적으로는 잘 사용되지 않는다. Referer 현재 요청된 페이지의 이전 웹 페이지 주소를 나타낸다. 클라이언트의 유입 경로를 알기위해서 주로 사용된다. (티스토리의 유입 경로도 이 헤더를 기반으로 수집하려나..) 요청시에만 사용된다. referer은 referrer의 오타이다. User-Agent 유저 에이전트 애플리케이션 정보를 표시한다. 클라이언트가 요청시에 사용한 애플리케이션의 정보를 나타낸다. 통계 정보나 장애가 발생하는 특정 브라우저를 찾기위해서 사용된다. 요청시에만 사용된다. Server 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보.. [HTTP] 헤더 - 2 (전송 방식) HTTP 전송 방식에 대해서 살펴본다. 단순 전송 (Content-Length) 요청 GET /car응답 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 4000 body... 압축 전송 (Content-Encoding) 요청 GET /car응답 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Encoding: gzip Content-Length: 2000 eyJzdWIiOiJzYWxseUBpbWFzbGFiLmN...분할 전송 (Transfer-Encoding) 요청 GET /car응답 HTTP/1.1 200 OK Content-Type: text/plain Tran.. [HTTP] 헤더 - 6 (조건부 요청) 효율적인 캐싱을 위한 조건부 요청에 대해서 알아본다. Last-Modified (데이터가 마지막에 수정된 시간)을 이용 요청 GET /car.jpg응답 HTTP/1.1 200 OK Content-Type: image/jpeg Content-Length: 40000 cache-control: max-age=60 Last-Modified: 2021-06-25 10:00:00 eyJzdWIiOiJzYWxseUBpbWFzbGFiLmN...첫 번째 요청에서 클라이언트는 응답 결과, 캐시 유효 시간, 마지막 수정 일시를 저장한다. 61초 후에 재요청 GET /car.jpg if-modified-since: 2021-06-25 10:00:00이때, 로컬에 저장되어 있는 클라이언트의 캐시 유효 시간은 60초이므로 서버.. [HTTP] 헤더 - 5 (캐시) HTTP 헤더를 사용한 캐시와 조건부 요청에 대해서 알아본다. 캐시 기본 동작 캐시가 없는 경우 (HTTP 헤더의 사이즈: 0.1mb, HTTP 바디의 사이즈: 1.0mb라고 가정) 요청 GET /car.jpg 응답 HTTP/1.1 200 OK Content-Type: image/jpeg Content-Length: 40000 eyJzdWIiOiJzYWxseUBpbWFzbGFiLmN... 재요청 GET /car.jpg 응답 HTTP/1.1 200 OK Content-Type: image/jpeg Content-Length: 40000 eyJzdWIiOiJzYWxseUBpbWFzbGFiLmN... 첫번째 요청과 두번째 요청 모두 응답 메시지 바디에 같은 데이터가 들어가있다. 이렇게 캐시가 사용되지 않는 경.. [HTTP] 헤더 - 1 (일반 헤더) HTTP 헤더의 역할 그리고 일반적인 헤더의 종류와 그 역할에 대해서 알아본다. HTTP 헤더의 역할 header-field = field-name":" OWS field-value OWS field-name은 대소문자 구분이 없다. 아래의 요청과 응답 부분에서 진하게 적어놓은 부분이 헤더 부분이다. 요청 GET /car?manufacturer=hyundai?modelName=sonata HTTP/1.1 Host: www.google.com 응답 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 body... 과거 버전(RFC2616)과 현재 버전(RFC723*)의 차이를 알아보자. RFC2616의 헤더 0) POST /.. [HTTP] 상태 코드 (3xx) 3xx (Redirection) 상태 코드에 대해서 알아본다. 요청을 완료하기 위해 유저 에이전트의 추가 조치가 필요하다. 300 (여러 선택 항목, Multiple Choices): 서버가 요청에 따라 여러 조치를 선택할 수 있다. 서버가 사용자 에이전트에 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다. 301 (영구 이동, Moved Permanently): 요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다. 302 (임시 이동, Found): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다. 303 (기타 위치 .. [HTTP] 상태 코드 (5xx) **5xx (Server Error) 상태 코드에 대해서 알아본다. 서버 문제로 오류가 발생 하였을 때 사용되는 상태 코드. 오류의 원인이 서버이기 때문에 4xx 상태 코드와는 다르게 재시도시 성공 할 수도 있다. 500 (Internal Server Error) 서버 내부 문제로 오류가 발생했을 때 서버 내부의 오류를 정의하기 애매하면 500 상태 코드를 사용한다. 필자가 이 글을 쓰기전까지 실수하였던 부분이 있다. 예를들어 GET /car/100 을 조회 하였고 결과는 null이었다고 가정해보자. id = 100인 차량을 조회하였을 때 결과가 없는 것은 클라이언트 입장에서는 정상적인 결과이다. 쉽게 말해서 조회한 리소스가 없다는 결과를 얻었기 때문에 에러가 아니다. 하지만 null 인 결과를 수정하려.. [HTTP] 상태 코드 (4xx) 4xx (Client Error) 상태 코드에 대해서 알아본다. 클라이언트의 요청이 잘못되어 서버가 요청을 수행할 수 없다. 중요한 점은 오류의 원인이 클라이언트에게 있기 때문에 같은 형식으로 재요청시 재실패한다는 점이다. 백엔드 개발자들은 4xx 상태 코드를 잘 터트려주어 프론트 개발자들의 디버깅 시간을 줄여주어야한다. 400 (잘못된 요청): 서버가 요청의 구문을 인식하지 못했다. 401 (권한 없음): 이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다. 상태 코드 이름이 권한 없음(Unauthorized)로 되어 있지만 실제 뜻은 인증 안됨(Unauthenticated)에 더 가깝다. 403 (금지됨): 서버가 요청을 거부하고 있다. (401은 인증 실패,.. 이전 1 ··· 27 28 29 30 31 32 다음