브라우저 작동 원리 - 01. 배경지식

angie·2023년 1월 22일
0

FE 관련 지식 쌓기

목록 보기
6/7
post-custom-banner

1. IP 주소

  • Internet Protocol address
  • 인터넷 상에서 사용하는 주소 체계
  • IPv4 : 모든 PC는 IP 주소 체계를 따라 네 덩이의 숫자로 구분된다.
  • 컴퓨터, 스마트폰, 사물인터넷 등의 보급화로 주소가 고갈되어 요즘은 IPv6 사용

1) IPv4

93.184.216.34

  • 8비트씩 끊어 이를 0~255의 10진수로 나타내며 각 숫자는 점(.)으로 구분한다.
  • 각 32비트의 정보를 가지므로 최대 43억개의 고유한 주소를 부여할 수 있다.

IPv4 할당 종료

  • 2011년 2월 4일 IPv4의 할당 중지가 선언됨
  • 기존에 할당된 IPv4는 유지 및 관리되는 중
  • IPv6로 완전히 전환된다면 IPv4 서비스가 완전히 중지되겠지만 현재로선 미지수

2) IPv6

2606:2800:0220:0001:0248:1893:25c8:1946

  • 128비트의 값
  • 4자리의 16진수 숫자 8개로 표기하며 쌍점(:)으로 구분한다.
  • 최대 할당 IP 개수는 약 2의 128승개 (매우 넘쳐남)

3) IP 주소 할당

공인 IP 주소

  • 공인 IP란 다른 컴퓨터와 통신할 때 쓰는 IP주소
  • 내가 맘대로 IP 주소를 사용할 수 없음. IP 주소를 관리하는 기관으로부터 할당받아야 사용가능
  • IANA → 각 대륙별 IP 주소 관리 기관 → 각국의 IP 주소 관리 기관 → ISP 순으로 IP를 할당받음
  • 대한민국은 APNIC(아시아-태평양 네트워크 정보센터)와 KRNIC(한국인터넷정보센터)의 관할 구역

2. 도메인

IP는 기억하기 어렵기 때문에 각 IP에 기억하기 쉬운 이름을 부여한 것

https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/module/121/298.png

도메인의 구성요소

  • 컴퓨터의 이름과 최상위 도메인

https://velog.velcdn.com/images/gyumin_2/post/4de7d983-2071-4222-8101-c0ea5b7e77db/image.gif

https://velog.velcdn.com/images/gyumin_2/post/4e6f0426-70a2-4d44-a802-2ceeedcada15/image.png

  1. 국가 최상위 도메인
    • 인터넷 상에서 국가를 나타내는 영문 및 자국어 도메인으로 각 국가에서 관리
  2. 일반 최상위 도메인
    • 조직, 목적, 분류 등의 명칭을 약자로 표현
    • 일반적으로 이 도메인에 대한 권한은 사설 조직에 있음

예시

opentutorials.org

  • opentutorials : 컴퓨터의 이름
  • org : 최상위 도메인 - 비영리 단체

daum.co.kr

  • daum : 컴퓨터의 이름
  • co : 국가 형태의 최상위 도메인을 의미
  • kr : 대한민국의 NIC에서 관리하는 도메인을 의미

3. DNS

  • Domain Name System
  • 도메인 네임 시스템
  • 호스트의 도메인 이름을 IP주소로 변환하거나 반대의 경우 수행할 수 있도록 개발된 데이터베이스 시스템
  • 브라우저에 ‘google.com’을 입력하면 DNS에서 해당 도메인에 해당하는 IP 주소를 찾아 이 IP 주소에 해당하는 서버로 요청을 전달한다.

4. URL vs URI vs URN

https://velog.velcdn.com/images%2Fdkajffkem%2Fpost%2F94ee53f3-260c-4754-8a64-1247545c936a%2Fimage.png

  • URL, URN은 URI의 종류이다.
  • URL은 리소스를 리소스의 경로를 기반으로 식별하는 것
  • URN은 리소스를 리소스의 이름을 기반으로 식별하는 것

URI

인터넷에 있는 자원을 어디에 있는지 자원 자체를 식별하는 방법

  • Uniform Resource Identifier
  • 통합 자원 식별자
    • Uniform : 리소스를 식별하는 통일된 방식
    • Resource : URI로 식별이 가능 모든 종류의 자원
    • Identifier : 다른 항목과 구분하기 위해 필요한 정보
  • URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다닌다.

URL

네트워크 상에서 자원이 어디 있는지 위치를 알려주기 위한 규약

  • Uniform Resource Locator
  • 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조
  • URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타내는 표기법
  • 해당 URL에 접속하려면 그에 맞는 프로토콜(http, sftp, smp 등)로 접속해야함

문법

https://www.google.com:443/search?q=hello&hi=ko

  1. 프로토콜 : https
    • 어플리케이션 계층의 통신 규약을 명시
    • FTP, HTTP, HTTPS 등의 방식
  2. 호스트명 : www.google.com
    • 도메인 이름이나 IP Address
  3. 포트 : 443
    • 메세지를 받아야하는 프로세스가 있는 위치
  4. 패스 : /search
  5. 쿼리스트링 : q=hello, hi=ko

URN

urn:scheme 을 사용하는 URI를 위한 역사적인 이름

  • Uniform Resource Name
  • URN은 리소스에 이름을 부여하는 것
  • 거의 사용될 일이 없음

URI vs URL vs URN

http://www.naver.com/index.html?page=1232950&id=776

http://www.naver.com/index.html?page=1232950&id=776

http://www.naver.com/index.html?page=9923145&id=122

  • 식별자가 다르므로 같은 URL이지만 다른 URI라고 할 수 있다.

5. 프로토콜

  • 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계

예시

  • HTTP : Hyper Text Transfer Protocol
  • HTTPS : Hyper Text Transfer Protocol Secure
  • FTP : File Transfer Protocol
  • SFTP : Secure File Transfer Protocol
  • Telnet : TErminaL NETwork
  • POP3 : Post Office Protocol version 3
  • SMTP : Simple Mail Transfer Protocol
  • SSH : Secure Shell
  • SSL : Secure Socket Layer
  • SOAP : Simple Object Access Protocol
  • ARP : Adress Resolution Protocol

구성

  • 물리적 측면: 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격 등
  • 논리적 측면: 프레임(Frame, 자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등
    • 폐쇄적인 프로토콜: 자사 장치들끼리 통신하기 위한 독자적인 통신 규약이며, 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전하다. (보기: IBM의 SNASDLC 프로토콜)
    • 공개된 범용 프로토콜: 여러 장치들에 쓰이는 널리 알려진 규격이며, 규격이 널리 공개되어 있기 때문에 컴퓨터와 네트워크 크래킹에 취약한 편이다. (보기: 인터넷의 TCP/IP)

대표 프로토콜

**TCP**

  • 2개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜
  • 데이터와 패킷이 보내진 순서대로 전달하는 것을 보장
  • 신뢰성과 연결성을 책임지기 위한 프로토콜
  • 호스트와 호스트간의 데이터 전송은 IP(인터넷 계층 프로토콜)에 의지하면서 동시에 신뢰성 있는 전송에 대해서는 TCP가 책임지는 구조

6. 포트

  • IP 주소만을 이용해 컴퓨터로 데이터를 보낸다면 컴퓨터는 그 데이터를 어느 프로세스에서 처리되어야하는 것인지 알 수 없음
  • TCP에서는 패킷을 어떤 프로세스가 받아야하는지에 대한 정보인 Port 정보를 추가하여 전송

Screenshot 2023-01-22 at 8.09.03 PM.png

  • Port 정보는 TCP 계층에서 추가된다.

자주 사용되는 포트

포트들 중 규약처럼 사용되는 포트가 있다.

최신 웹브라우저들은 포트가 정의되지 않았을 때 각 통신 방법에 따라 자동으로 해당 포트에 접근하도록 만든다.

  • FTP 파일 송수신 → 20, 21번 포트
  • HTTP 통신 → 80번 포트
  • HTTPS 통신 → 443번 포트

따라서, 1023번 이하의 포트는 이미 규약처럼 사용되고 있을 가능성이 높아 사용하지 않는 것이 좋다.

7. 파싱

  • 파싱은 하나의 프로그램을 런타임 환경(예를 들면, 브라우저 내 자바스크립트 엔진)이 실제로 실행할 수 있는 내부 포맷으로 분석하고 변환하는 것을 의미
  • 파싱은 문서의 내용을 토큰(token)으로 분석하고, 문법적 의미와 구조를 반영한 파스 트리(parse tree)를 생성하는 과정
profile
better than more
post-custom-banner

0개의 댓글