Web/HTTP
브라우저 주소창에 www로 시작하는 주소를 입력하면 생기는 일
📌 편지를 보내기 위해서는? A가 B에게 편지를 보낸다면 편지에 우편번호와 도로명 주소를 쓴 다음 돈을 지불하고 A와 가장 가까이에 있는 동네 우체국으로 보낸다. B에게 가까운 다른 우체국으로 전달되었다가 최종적으로 B에게 도착하게될 것이다. 특별한 점은 같은 장소에서 많은 양의 편지를 보내면, 각기 다른 우체국을 통해 전달되고 우체국마다 전달되는 방법이 다를 수도 있다. 여기서 편지는 데이터 패킷이고 우체국은 라우터다. 📌 그래서 진짜 브라우저에서는 무슨 일이 일어날까요 주소창에 'https://www.never.com' 등의 주소를 입력하고 엔터를 친다는 건, never 웹사이트를 보여달라고 요청하는 일과 같다. 컴퓨터는 DNS에게 'https://www.never.com'의 IP주소가 무엇인지 물어..
HTTP 헤더 - 캐시와 프록시 캐시, 무효화
📒 캐시 제어 헤더 📝 Cache-Control: 캐시 제어 • "Cache-Control: max-age" -> 초 단위 캐시 유효 시간 (보통 굉장히 길게 설정) • "Cache-Control: no-cache" -> 데이터는 캐시해도 되지만, 중간의 프록시 캐시 서버에서는 아무것도 하면 안되고 항상 원(origin) 서버에서 검증하고 사용 • "Cache-Control: no-store" -> 데이터에 민감한 정보가 있으므로 저장하면 안됨 (메모리에서 사용하고 최대한 빨리 삭제) 📝 Pragma: 캐시 제어(하위 호환) • Pragma: no-cache • HTTP 1.0 하위 호환 * 거의 사용하지 않음 📝 Expires: 캐시 유효 기간(하위 호환) • expires: Mon, 01 Jan 19..
검증 헤더와 조건부 요청
📒 검증 헤더와 조건부 요청 다시 요청한 데이터와 이전에 요청했었던 데이터가 같은지 다른지 어떻게 확인하지? 그래서 등장하는 검증 헤더! 검증 헤더에는 크게 2가지가 있는데, Last-Modified와 ETag. 📌 검증 헤더 - Last-Modified 📝 과정 1. 클라이언트의 요청에 서버가 이렇게 검증 헤더를 추가해서 응답을 보냄. HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=60 Last-Modified: 2022년 1월 12일 10:00:00 Content-Length: 34012 lkj123kljoiasudlkjaweioluywlnfdo912u34ljko98udjklasl kjdfl;qkawj9;o4ruawsldkal;skd..
캐시
📒 캐시 기본 동작 📌 캐시가 없다면? • 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 함. • 인터넷 네트워크는 매우 느리고 비쌈. • 브라우저 로딩 속도가 느림. • 느린 사용자 경험😥 📌 캐시를 적용해보자 📝 과정 1. 클라이언트가 요청을 보내면 2. 서버가 이런 응답을 보내는데, HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=60 Content-Length: 34012 lkj123kljoiasudlkjaweioluywlnfdo912u34ljko98udjkla slkjdfl;qkawj9;o4ruawsldkal;skdjfa;ow9ejkl3123123 'cache-control'을 포함해서 응답을 보냄. (..
HTTP 헤더 - 일반 헤더
📒 Intro 📌용도 • HTTP 전송에 필요한 모든 부가정보 ... • 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐 시 관리 정보... • 표준 헤더가 너무 많음 • https://en.wikipedia.org/wiki/List_of_HTTP_header_fields • 필요시 임의의 헤더 추가 가능 📌 HTTP BODY • 메시지 본문(message body)을 통해 표현 데이터 전달 • 메시지 본문 = 페이로드(payload) • 표현은 요청이나 응답에서 전달할 실제 데이터 • 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 • 데이터 유형(html, json), 데이터 길이, 압축 정보 등등 • 참고: 표현 헤더는 표현 메타데이터와, 페이로..
HTTP 상태 코드
📒 상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 📝 1xx (Informational): 요청이 수신되어 처리중 📝 2xx (Successful): 요청 정상 처리 📝 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 📝 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 📝 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 * 클라이언트가 인식할 수 없는 상태 코드를 서버가 반환하면? 첫번째 자리 숫자로 해석해서 처리. (200대인지 400대인지 등) 📒 2xx (Successful): 클라이언트의 요청을 성공적으로 처리 📝 200 OK: 요청 성공 📝 201 Create..