백엔드/네트워크 17

[HTTP] 섹션 8. HTTP 헤더2 - 캐시와 조건부 요청

8-1. 캐시 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다. 8-2. 검증 헤더와 조건부 요청1 캐시 시간 초과 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 서버에서 기존 데이터를 변경함 서버에서 기존 데이터를 변경하..

[HTTP] 섹션 7. HTTP 헤더1 - 일반 헤더

7-1. HTTP 헤더 개요 HTTP 헤더 header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용) field-name은 대소문자 구문 없음 HTTP 헤더: 용도 HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 너무 많음 https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 필요시 임의의 헤더 추가 가능 helloworld: hihi HTTP 헤더: 분류 - RFC2616(과거) 헤더 분류 General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close Requ..

[HTTP] 섹션 6. HTTP 상태코드

6-1. HTTP 상태코드 소개 상태 코드: 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 예) 299 ??? -> 2xx (Su..

[HTTP] 섹션 5. HTTP 메서드 활용

5-1. 클라이언트에서 서버로 데이터 전송 클라이언트에서 서버로 데이터 전송: 2가지 방식 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 클라이언트에서 서버로 데이터 전송: 4가지 상황 정적 데이터 조회 이미지, 정적 텍스트 문서 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) HTML Form을 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 HTTP API를 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax) 정적 데이터 조회: 쿼리 파라미터 미사용 이미지, 정적 텍스트 문서 조회는..

[HTTP] 섹션 4. HTTP 메서드

4-1. HTTP API를 만들어보자 URI 설계: 가장 중요한 것은 리소스 식별 API URI 고민: URI(Uniform Resource Identifier) 리소스의 의미는 뭘까? 회원을 등록하고 수정하고 조회하는게 리소스가 아니다! 예) 미네랄을 캐라 -> 미네랄이 리소스 회원이라는 개념 자체가 바로 리소스다. 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 매핑 리소스와 행위를 분리: 가장 중요한 것은 리소스를 식별하는 것 URI는 리소스만 식별! 리소스와 해당 리소스를 대상으로 하는 행위을 분리 리소스: 회원 행위: 조회, 등록, 삭제, 변경 리소스는 명사, 행위는 동사 (미네랄을 캐라) 행위..

[HTTP] 섹션 3. HTTP

3-1. 모든 것이 HTTP HTTP (HyperText Transfer Protocol) 지금은 HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) HTTP/2 2015년: 성능 개선 HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선 기반 프..

[HTTP] 섹션 2. URI와 웹 브라우저 요청 흐름

2-1. URI, URL, URN URI(Uniform Resource Identifier) URI: 자원 명시 전체, URL: 자원 위치 명시, URN: 자원 이름 명시 URN (이름)으로는 resource를 식별할 수 없기 떄문에, 대부분 URL를 사용함 URI 단어 뜻 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL: Uniform Resource Locator URN: Uniform Resource Name URL, URN 단어 뜻 URL - Locator: 리소스가 있는 위치를 지정 URN - Name: 리소스에 이름을 부여 ex) urn:isbn:896077733..

[HTTP] 섹션 1. 인터넷 네트워크

1-1. 인터넷 통신 복잡한 인터넷 망을 어떻게 거쳐서 통신하는가? 1-2. IP(인터넷 프로토콜) 복잡한 인터넷 망을 어떻게 거쳐서 통신하는가? ⇒ 단말 간 IP 주소를 부여하여 인터넷 망에서 단말들을 찾아 통신함 인터넷 프로토콜 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 인터넷 망의 노드끼리 패킷을 던져가며 대상 단말을 찾아 데이터를 전달한다 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라질 수 있음 패킷이 순서대로 안올 수 있음 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 1-3. TCP, UDP 인터넷 프로토콜 스택의 4계층 프..

[모두의 네트워크] 9장 무선 랜 이해하기

35. 무선 랜의 구조 유선 랜 (유선 랜 케이블이 필요함) vs. 무선 랜 (랜 케이블이 필요 없음) 무선 랜 구성 요소 무선 액세스 포인트(Wireless Access Point, WAP) 무선 공유기, 무선 AP라고도 부름 무선 액세스 포인트와 통신하기 위해서는 무선 랜 칩(chip)과 무선 랜 어댑터(adapter)가 필요 무선 랜 칩: 대부분의 컴퓨터가 내장하고 있음 무선 어댑터의 종류: USB 메모리 방식, 컴퓨터 카드 방식 무선 클라이언트(컴퓨터나 스마트폰 등) 무선 랜을 연결하는 방식 인프라스트럭처(infrastructure) 방식: 무선 액세스 포인트를 통해 통신하는 방식, 주로 사용하는 방식 애드훅(Ad Hoc) 방식: 무선 클라이언트끼리 직접 통신하는 방식 무선 랜 규격 무선 랜은 I..

[모두의 네트워크] 8장 네트워크의 전체 흐름 살펴보기

32. 랜 카드에서의 데이터 전달과 처리 OSI 모델 계층 역할 응용 계층 (세션 계층과 표현 계층 포함) 애플리케이션 등에서 사용하는 데이터를 송수신하는 데 필요함 전송 계층 목적지에 데이터를 정확하게 전달하는데 필요함 네트워크 계층 다른 네트워크에 있는 목적지에 데이터를 전달하는 데 필요함 데이터 링크 계층 랜에서 데이터를 송수신하는 데 필요함 물리 계층 데이터로 전기 신호로 변환하는 데 필요함 웹 브라우저에 URL을 입력할 때부터 웹 서버에 도착할 때까지 이루어지는 네트워크 전체 흐름 컴퓨터의 데이터가 전기 신호로 변환되는 과정 (OSI 캡슐화) 3-way handshake는 이미 완료되어 연결이 확립되어 있다고 가정 0. 웹 브라우저에 URL을 입력하고 Enter를 누르면 캡슐화 시작 응용 계층:..