[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%의 네트워크 원리