[Infra] 네트워크(Network)(1)-요청(Request)

업데이트:

네트워크(Network)(1)-요청(Request)

1. HTTP 리퀘스트 메시지 작성

  • 탐험은 URL 입력부터 시작, 브라우저는 먼저 URL을 해독.
  • URL: Uniform Resource Locator
  • FTP: File Transfer Protocol
  • 액세스 대상이 웹 서버라면 HTTP라는 프로토콜을 사용하여 액세스, FTP 서버라면 FTP라는 프로토콜 사용.

  • HTTP
    http://user:password@www.cyber.co.kr:80/dir/file1.htm
    


  • FTP
    ftp://user:password@ftp.cyber.co.kr:21/dir/file1.htm
    


  • 클라이언트 PC 자체 파일 데이터 읽어오기
    file://localhost/c:/path/file1.zip
    


  • 메일 송신
    mailto:tone@cyber.co.kr
    


  • 뉴스그룹 기사 읽는 경우
    news:comp.protocols.tcp-ip
    


  • HTTP: HyperText Transfer Protocol
  • 프로토콜: 통신 동작의 규칙을 정한 것
  • HTTP 프로토콜: 클라이언트와 서버가 주고 받는 메시지의 내용이나 순서를 정한것. 리퀘스트 메시지 않에는 ‘무엇’을 ‘어떻게’ 하겠다는 내용이 쓰여져 있음. ‘무엇’에 해당하는 것이 URI, ‘어떻게’에 해당되는 것이 메소드.
  • URI: Uniform Resource Identifier
  • 메소드 종류: GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT
  • 대부분의 서버는 index.html 또는 default.htm 이라는 파일명을 설정함.
  • 리퀘스트 메시지를 보내면 응답이 되돌아온다.
코드값 설명
1xx 처리의 경과 상황 등을 통지
2xx 정상 종료
3xx 무언가 다른 조치가 필요함
4xx 클라이언트측 오류
5xx 서버측 오류
  • 요약: 브라우저는 URL 해독후 HTTP 메시지를 만든다.

2. 웹서버 IP 주소를 DNS서버에 조회

  • 브라우저에는 메시지를 네트워크에 송출하는 기능이 없으므로 OS에 의뢰하여 송신한다.
  • IP 주소 표기법
10.11.12.13/255.255.255.0 (IP주소본체/넷마스크)
10.11.12.13/24 (IP주소본체/넷마스크 비트수로 표기)
10.11.12.0/24 (서브넷을 나타내는 주소)
10.11.12.255/24 (서브넷의 브로드캐스트를 나타내는 주소) 
  • IP 주소 대신 문자열을 쓰게 되면 그만큼 라우터가 부하되어 데이터를 운반하는 시간이 오래 걸림.
  • IP 주소 : 32비트 = 4바이트
  • 문자열 도메인 명 : 최대 255바이트
  • 절충안 : 사람은 이름을 사용하고, 라우터는 IP 주소를 사용함.
  • DNS(Domain Name System) : 이름을 알면 IP주소를 알수있고, IP주소를 알면 이름을 알 수 있는 원리.
  • DNS 서버에 대해 클라이언트에 해당하는 것을 DNS 리졸버, 또는 단순히 리졸버라고 부름.
  • IP주소 조사 방법 : 가까운 DNS 서버에 ‘www.naver.com’이라는 서버의 IP 주소를 가르쳐주세요라고 질문함.
  • 소켓 라이브러리가 IP 주소를 찾는 기능을 제공
  • 라이브러리: 다양한 애플리케이션에서 이용할 수 있도록 부품화한 여러 개의 프로그램을 모아놓은 것으로, 프로그램 부품집이라고 생각하면 됨.
  • 소켓 라이브러리 : 네트워크 기능을 호출하기 위한 프로그램 부품집.
<메모리영역> = gethostbyname("www.lab.cyber.co.kr");
  • DNS 서버에서 응답 메시지가 돌아오는데, 이 응답메시지 속에 IP 주소가 포함되어 있으므로 리졸버는 이것을 추출하여 브라우저에서 지정한 메모리 영역에 써넣음.
  • 메시지를 DNS 서버에 보낼때, 송신 동작은 리졸버가 스스로 실행하는 것이 아니라 OS 내부에 포함된 프로토콜 스택을 호출하여 실행 의뢰
  • 프로토콜 스택 : OS 내부에 내장된 네트워크 제어용 소프트웨어.
  • 리졸버도 브라우저와 같이 네트워크에 대해 데이터를 송, 수신하는 기능이 없기 때문.
  • DNS 서버에 메시지를 송신할 때도 DNS 서버의 IP 주소가 필요함. (컴퓨터에 설정되어 있음)

3. 전세계의 DNS 서버가 연대한다.

  • 담당 DNS 서버를 찾아 IP 주소를 가져온다.

4. 프로토콜 스택에 메시지 송신을 의뢰한다.

  • 소켓 : 파이프 양 끝에 있는 데이터의 출입구
  • 데이터의 송수신 동작 단계

(1) 소켓을 만듬

(2) 서버측 소켓에 파이프 연결(접속)

(3) 데이터 송수신

(4) 파이프 분리 및 소켓 말소(연결 끊기)

  • 위 네가지 동작을 실행하는 것은 OS 내부의 프로토콜 스택

참고자료: 성공과 실패를 결정하는 1%의 네트워크 원리