-
인터넷
<인터넷은 어떻게 작동될까요?>
여러 컴퓨터를 그냥 연결하기 위해서는 너무 많은 케이블이 필요하다 => 라우터(연결을 도와주는 특수 소형 컴퓨터)를 사용!
하지만, 컴퓨터가 너무 많아진다면 라우터 하나로는 부족하다 => 라우터끼리 연결하여 해결할 수 있다
너무 먼곳에 있는 곳까지도 연결을 하기 위해서는 어떻게 해야할까? => 라우터를 ISP(Internet Service Provier)에 연결한다!
네트워크에 연결된 모든 컴퓨터에는 IP 주소라는 고유의 주소가 있다.
IP주소는 점으로 구분 된 네 개의 숫자로 구성된 주소
IP주소를 기억하기 어려우니, 도메인 이름을 지정하여 기억하기 쉽게 사용한다! ex) google.com = '173.194.121.32'
<HTTP는 무엇일까요?>
HTTP(Hyper Text Transfer Protocol)
- 인터넷에서 데이터를 주고받을 수 있는 프로토콜. 클라이언트와 웹서버의 커뮤니케이션을 도와준다.
- 클라이언트가 브라우저를 통해서 요청(request)를 하면 이에 맞는 응답(response)을 주는 형태로 동작한다.
Request HTTP 구성: method(첫 줄)/ header(두 번째 줄)/ 본문 (세 번째 줄)
GET https://velog.io/@surim014 HTTP/1.1 // 시작줄 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... // 헤더 Upgrade-Insecure-Requests: 1
1. method
- http method: get, post, delete 등등...
- 사이트 주소
- HTTP version
2. Header
- 요청에 대한 정보
3. 본문
- 요청을 할 때 함께 보낼 데이터를 담는 부분
Response HTTTP 구성: 상태코드(첫 줄)/ header(두 번째 줄)/ 본문 (세 번째 줄)
HTTP/1.1 200 OK // 시작줄 Connection: keep-alive // 헤더 Content-Encoding: gzip Content-Length: 35653 Content-Type: text/html; <!DOCTYPE html><html lang="ko" data-reactroot=""><head><title...
1. 상태코드
- 100번대 부터 500번대까지 있다.
- 자세한 내용은 다른 블로그 참조.
2. header, 3.본문은 request와 동일.
HTTP Version: 1.1 / 2 / 3
HTTP 1.1: 연결당 하나의 요청에 하나의 응답으로 처리한다.
HTTP 1.1의 단점
- 속도와 성능 이슈 존재
- HOL(Head of Line) Blocking (특정 응답 지연). 연결당 하나의 요청에 하나의 응답을 처리하기 때문에, 첫 번째 request에 대한 응답이 늦어지면 그 뒤의 request에 대한 response도 늦어지게 된다.
- RTT(Round Trip Time) 증가
- 헤더가 크다(특히, 쿠키). 헤더에는 많은 메타 정보들이 저장되어 있다. 사용자가 방문한 웹페이지는 다수의 http 요청이 발생되는데, 이 경우 매 요청시마다 중복된 헤더 값을 전송하게 되며 각 도메인에 설정된 쿠키 정보도 매 요청시마다 헤더에 포함되어 전송
HTTP 2 출시
- 한 커넥션에 여러개의 메세지를 동시에 주고받을 수 있다. (Multiplexed Strams)
- 요청에 커넥션 상에서 다중화 되므로 HOL Blocking 발생 제어
- 요청 리소스간 의존관계를 설정 (Stream Prioritization)
- HTML문서상에 필요한 리소스를 클라이언트 요청없이 보내줄 수 있다. (Server Push)
- Header정보를 HPACK 압충방식을 이용하여 압축전송 (Header Compression)
<브라우저와 동작 원리>
<DNS와 작동 원리>
<도메인 네임은 무엇일까요?>
<호스팅은 무엇일까요?>