[네트워크] 캐시와 조건부 요청
·
개발지식/네트워크
캐시 기본 동작 캐시가 없는 경우 데이터가 변경되지 않았음에도 불구하고 요청할 때 마다 데이터를 다운로드 받아야한다. 이로 인해서 느린 사용자 경험을 가지게 된다. 캐시 적용 서버에서는 cache-control 속성을 사용해서 헤더에 캐시가 유효한 시간을 지정해 줄 수 있다. HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=60 Content-Length: 12345 ajfksdjfiewji234k2j39f32jlf9... //데이터 내용 캐시를 사용하면 지정 시간동안 똑같은 데이터에 대해서 네트워크를 사용하지 않을수 있다. 이는 네트워크 사용량을 줄이고, 빠른 사용자 경험을 제공한다. cache-control 속성에서 지정한 시간이 지나..
[네트워크] HTTP 헤더(1) - 헤더와 헤더의 종류, 전송방식, 쿠키
·
개발지식/네트워크
HTTP 헤더란? 용도 HTTP 전송에 필요한 모든 부가 정보 메시지 바디의 내용, 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 Content-Type: text/html;charset=UTF-8 Content-Length: 1212 과거와 현재 Header의 구분 방식 1999년 - RFC2616 General 헤더, Request 헤더, Response 헤더, Entity 헤더로 구분되었음 2014년 - RFC7230~7235 등장 엔티티(Entity) 헤더 → 표현(Representatition) 헤더 + 표현 데이터 메시지 본문을 통해서 표현 데이터 전달 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Len..
[네트워크] HTTP 상태코드란?
·
개발지식/네트워크
상태코드란? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려준다. 상태 코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1에서 5까지 제공된다. 상태 코드의 종류 1xx(정보) : 요청을 받았으며 프로세스를 계속 처리중 2xx(성공) : 요청을 성공적으로 받았으며 정상 처리 3xx(리다이렉션) : 요청 완료를 위해 추가 행동이 필요 4xx(클라이언트 오류) : 잘못된 문법으로 인해 서버가 요청을 수행할 수 없음 5xx(서버 오류) : 서버가 정상 요청을 처리하지 못함 모르는 상태코드가 나타난다면? 클라이언트는 상위 상태코드로 해석해서 처리하면 된다. 예를 들어서 클라이언트가 해석하지 못하는 599번 상태코드가 나타나면, 상위 상태코드인 5xx인 서버 오류로 해석하면 된다. 2xx 상태코드(Suc..
[네트워크] HTTP 메서드 활용 - 데이터 전송방법
·
개발지식/네트워크
클라이언트에서 서버로의 데이터 전송 데이터 전달 방식은 크게 2가지로 나뉜다. 쿼리 파라미터를 통한 데이터 전송 - GET, 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 - POST, PUT, PATCH, 회원가입, 상품 주문, 등록, 변경 4가지 상황에 따른 데이터 전송 방법을 알아보자. 1. 정적 데이터 조회 이미지, 정적 텍스트 문서 등을 조회 GET을 사용하며, 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순 조회가 가능하다. 2. 동적 데이터 조회 검색, 게시판 목록에서 정렬필터를 사용하면 쿼리파라미터를 사용하게 된다. https://www.google.com/search?q=hello&hl=ko // 해당 주소로 요청 GET /search?q=hello&hl=ko HTTP/1.1..
[네트워크] HTTP 메서드란?
·
개발지식/네트워크
HTTP API 설계 HTTP API 설계에서 가장 중요한 것은 리소스의 식별이다. URI에는 리소스 단위만 포함하고, 리소스에 대한 행위는 메서드(조회, 등록, 수정, 삭제 등)로 분리해서 URI에 포함시키지 않는다. 리소스만으로 설계가 불가능한 경우 행위의 내용이 URI에 포함될 수 있다. 회원 목록 조회: /members 회원 단일 조회: /members/{id} 회원 등록: /members 회원 수정: /members/{id} 회원 삭제: /members/{id} URI는 리소스만 식별하고, 해당 리소스에 해당하는 행위를 메소드로 분리한다. HTTP 메서드 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없을 경우 새로 생성 PA..
[네트워크] - HTTP 메시지의 구조
·
개발지식/네트워크
HTTP 메시지의 분류 HTTP 요청 메시지와 HTTP 응답 메시지로 구분한다. start-line 시작 라인 header 헤더 empty line 공백 라인(CRLF) message body HTTP 요청 메시지 예시 GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com message body HTTP 응답 메시지 예시 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 4432 message body HTTP 메시지의 구조 시작 라인 요청 메시지 GET /search?q=hello&hl=ko HTTP/1.1 요청 메시지에서는 시작 라인이 request-line 이라고 불린다. req..
[네트워크] URI란?
·
개발지식/네트워크
URI란? URI(Uniform Resource Identifier)란 인터넷 자원을 나타내는 고유 식별자이다. Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것 Identifier : 다른 항목과 구분하는데 필요한 정보 URI가 가장 포괄적인 개념으로, URL과 URN으로 나뉜다. URL과 URN URL(Uniform Resource Locator) Locator : 리소스가 있는 위치를 지정 해당 자원의 위치, Path를 의미한다. 일반적으로 사이트 도메인을 자주 의미 URN(Uniform Resource Name) Name : 리소스에 이름을 부여 해당 자원의 이름을 의미한다 독립적인 자원 지시자 Page이후 부분까지 포함한다. URI의 분..
[네트워크] PORT 와 DNS
·
카테고리 없음
PORT(포트)란? 같은 IP내에서 애플리케이션 상호 구분을 위해서 사용하는 번호 이미 사용중인 포트는 중복해서 사용할 수 없다. TCP/IP 패킷안에는 출발지 PORT와 목적지 PORT의 정보가 포함되게 된다. 포트 번호는 0 ~ 65,535 까지 사용이 가능하다. 대표적으로 사용하는 포트번호 FTP - 20, 21 TELNET = 23 HTTP - 80 HTTPS -443 DNS(Domain Name System)란? IP 주소를 대신하여 사용하는 주소이다. 한눈에 파악하기 힘든 IP 주소를 보다 분명하게 나타낼 수 있다. 기억하기 어려운 IP 주소를 기억하기 쉽게 할 수 있으며, IP 주소가 변경되어도 도메인 이름으로 접근이 가능하다. 로컬 PC를 나타내는 127.0.0.1은 localhost로 나..
[네트워크] IP(인터넷 프로토콜)란? TCP와 UDP
·
개발지식/네트워크
IP의 역할 지정한 IP 주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 통신 순서 1. 클라이언트 패킷 전달 출발지 IP와 목적지의 IP 정보가 들어있다. 전달하고자 하는 정보도 같이 들어 있음 중간에 있는 인터넷 노드들에서 서로 정보를 주고받다 보면서 서버에 있는 IP 주소에 도달하게 된다. 2. 서버 패킷 전달 클라이언트 패킷과 마찬가지로 패킷을 노드들 사이에서 주고받으면서 클라이언트 IP 주소에 도달하게 된다. IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라질수 있음 : 중간의 노드에서 문제가 생기면 패킷이 유실 될 수 있다. 패킷이 순서대로 안올수 있음 : 여러개의 패킷을 보내는 경우 노드의 노선을 ..
[개발지식] 프록시란?
·
개발지식/CS 지식
프록시란? 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 말한다. 프록시란 ‘대리’ 라는 의미를 가지며, 서버와 서버사이의 중계기 역할을 해 준다. 서버가 프록시에게 접근 할때는 클라이언트 처럼 작동하며, 클라이언트가 프록시에게 접근하면 서버처럼 작동을 해준다. 프록시는 프록시 서버에 요청이 된 내용을 캐시 를 이용해서 저장해 두어 중복 요청에 대해서 다시 데이터를 가져올 상황이 발생하지 않게 해줌으로서, 클라이언트에게는 빠른 속도의 서비스를 제공하고, 서버에게는 불필요한 부하를 줄이는 효과를 제공할 수 있다. 프록시의 두 종류 프록시 서버는 네트워크 상의 위치와 제공하는 데이터의 방향에 따라서 Forward Prox..