네트워크 내용은 '성공과 실패를 결정하는 1%의 네트워크 원리' 라는 책의 내용을 작성자가 정리한것임을 밝힙니다.

 

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

  • URL의 가장 앞에는 http:, ftp:, file: 등의 문자열이 따라 붙는데, 이는 엑세스 대상이 어떤 프로토콜을 가지고 있는지 나타낸다
  • 사용자명과 패스워드는 생략이 가능하다
  • ' // ' 는 이후 이어지는 문자열이 서버의 이름임을 나타낸다.
  • URL에 따른 리퀘스트 작성은 브라우저가 담당한다.
#예시1번
http://user:password@www.kakao.co.kr:80/dir/file.html
<프로토콜><사용자명><">    <웹서버:도메인명><포트><파일의경로명>

#예시2번
ftp://user:password@www.kakao.co.kr:80/dir/file.html
<프로토콜><사용자명><">    <웹서버:도메인명><포트><파일의경로명>

#예시3번
file://localhost/c:/window/file1.zip
      <컴퓨터명>  <파일의경로명>
   
#예시 4번
http://www.kakao.tistory.co.kr/dir/

1.1 파일명을 생략하는 경우

  • 예시 4번과 같이 파일의 경로명을 생략할 수 있다.
  • 기본적으로는 'index.html' 또는 ' default.html'로 붙는다

1.2 HTTP의 기본개념

  • 프로토콜 : 통신 동작의 규칙을 정한 것을 '프로토콜'이라 한다.
  • 이 통신 프로토콜은 클라이언트(브라우저)와 서버가 주고받는 내용이나 순서를 정한 것 이다.
  • 주고 내용
    • 무엇을 : URI (Uniform Resource Identifier)
    • 어떻게 : Method (Post, Get, Update, Delete)
    • Header: 보충정보( +Data)
    • Content
  • 받는 내용
    • Status Code
    • Header
    • Content
# method="Get"인 경우 메시지
GET /user/sample.txt?Field=userinfo&SendButton=SEND HTTP/1.1 #리퀘스트라인

# method="POST" 인 경우
POST /user/sample.txt HTTP/1.1 #리퀘스트라인
Field=userinfo&SendButton=SEND #메시지 헤더
# 공백
<메시지 Content> #메시지본문


# RESPONSE MESSAGE
HTTP/1.1 200 OK
Date: Sat, 12 Feb 2023 ~~~
<Another Tag> : <Value>
<Anotehr Tag2> : <Value2>

+ 헤더 필드의 종류는 굉장히 많으므로 필요에 따라 찾아보는것을 추천한다.

 

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

  1. IP 주소의 기본
    1. IP주소 : 네트워크 번호 + 호스트 번호
      • XX동 XX번지 => 네트워크 번호(어디 네트워크에 속하는지 나타냄)
      • 김코딩 씨 => 호스트 번호(개별적으로 할당된 호스트의 주소를 나타냄)
    2. TCP/IP 네트워크 : 작은 서브넷을 라우터로 연결하여 전체 네트워크를 완성한 것을 말한다. (+작은 서브넷 : 허브에 몇 대의 PC가 접속된 것)
    3. 네트워크 번호 + 호스트 번호 = 32비트(4바이트)
      •  몇바이트로 나눌지 기준이 존재하지 않는데, 이것의 기준이 되는게 '넷마스크' 이다.
      • 넷마스크가 '1'인 부분은 네트워크 번호이고, '0'인 부분은 호스트 번호이다.
  2. 도메인명과 IP주소를 구분하여 사용하는 이유
    • IP 주소는 32비트, 즉 4바이트에 해당하는 개수밖에 없지만, 도메인 명은 적어도 수십 바이트부터 최대 255 바이트나 있다
    • 라우터 부하가 증가하여 데이터 운반동작에, 시간이 증가한다. 즉 네트워크의 속도가 느려진다
  3. Socket 라이브러리가 IP 주소를 찾는 기능을 제공한다.
    1. DNS 서버에 IP 주소를 조회 한다는 것은 DNS서버에 조회 메시지를 보내고, 거기에서 반송되는 응답 메시지를 받는 것 이다.
    2. DNS resolver = '리졸버' 가 해당역할을 해주며, 얘는 Socket 라이브러리 안에 들어있는 부품화한 프로그램 이다.
    3. Socket 라이브러리OS에 포함되어 있는 네트워크의 기능을 애플리케이션에서 호출하기 위해 모아놓은 부품이다.
  4. 리졸버 내부의 작동
    1. 리졸버 호출 시점에 애플리케이션(브라우저) 동작은 일시 정지하고 제어가 넘어간다
    2. 리졸버는 DNS 서버에 문의하기 위한 메시지를 작성한다 (by Socket라이브러리).
    3. 프로토콜 스택을 이용하여 메시지를 송신한다
    4. LAN 어뎁터를 통해 메시지가 DNS서버로 전달된다.

 

 

 

 

 

+ Recent posts