솜이의 데브로그

1장 ) 웹과 네트워크의 기본 본문

CS/Network

1장 ) 웹과 네트워크의 기본

somsoming 2021. 9. 12. 01:23

Reference : 그림으로 배우는 Http & Network Basic

 

웹은 HTTP로 나타낸다

★ 브라우저 주소 입력란에 URL을 입력했을 때 어떻게해서 웹페이지가 보여지는지?

 

HTTP (HyperText Transfer Protocol) : 클라이언트에서 서버까지 일련의 흐름. 웹 통신 규약!

 

웹의 등장 배경

- 팀 버너스 리 박사

- WWW

 

HTTP/0.9 : 정식버전 아님

HTTP/1.0 : 정식. 초기 사양이지만 현역으로 많이 사용됨

HTTP/1.1 : guswo rkwkd aksgdl tkdydehla. chltlsqjwjs

 

(HTTP/2.0도 책정되어 있지만 많이 쓰이려면 오래걸릴것)

 

 

TCP/IP 프로토콜

  • 프로토콜의 집합. ( ex : 케이블 규격, IP주소 지정 방법, 라우팅 방법과 도달 순서, 웹표시 순서 등..)
  • 4계층 (OSI 7계층도 기억하기) → 계층화 되어있어 사양이 변경된 해당 층만 바꾸면 된다. 또한 설계가 편함.

 

4계층

(1) Application Layer : 유저에게 제공되는 애플리케이션에서 사용되는 통신의 움직임. HTTP도 포함.

(2) Transport Layer : 애플리케이션 계층에 네트워크로 접속되어 있는 컴퓨터 사이의 데이터 흐름. TCP, UDP

(3) Network Layer : 네트워크 상에서 패킷의 이동을 다룸. 어떤 경로로 패킷을 보낼지.

(4) Link Layer (Data Layer) : 네트워크에 접속하는 하드웨어적인 부분을 다룸.

 

 

TCP/IP 통신의 흐름

출처 : http://jkkang.net/unix/netprg/chap1/net1_2.html

통신을 할 때 계층을 순서대로 거쳐 상대와 통신한다.

송신하는 측은 애플리케이션 계층부터 내려가고, 수신측은 애플리케이션쪽으로 올라간다.

각 계층을 거칠 때는 반드시 헤더를 추가하여 해당 계층마다 필요한 정보를 추가한다. 수신측에서는 계층마다 헤더를 제거한다.

이러한 과정으로 정보를 감싸는 것을 '캡슐화' 라고 한다.

 

 

IP

  • 네트워크 층에 해당. IP 는 프로토콜의 명칭이다.
  • IP 주소와 MAC 주소가 중요.
  • 통신은 ARP 프로토콜을 이용해 MAC주소에서 한다. ARP 주소 : 수신지의 IP주소를 바탕으로 MAC 주소 조사. '라우팅'
    • 이 때 ARP spoofing 공격 유의할 것!

TCP

  • 트랜스포트 층에 해당. 신뢰성 있는 바이트 스트림 서비스를 제공.
  • 바이트 스트림 : 용량이 큰 데이터를 TCP 세그먼트라고하는 단위 패킷으로 분해하여 관리.
  • 3-way handshaking : 확실히 데이터를 보내기 위해 사용. SYN, ACK, TCP 플래그 사용.
    • 중간자 공격, SYN Flooding 등 공격 가능

출처 : https://www.researchgate.net/figure/TCP-three-way-handshaking_fig1_243464926

 

DNS

  • HTTP와 같이 응용계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공함.
  • IP주소와 별개로 호스트 이름과 도메인 이름을 붙일 수 있다.
  • DNS는 도메인 명에서 IP 주소를 조사하거나 반대로 IP 주소로부터 도메인명을 조사하는 서비스 제공.

 

 

URI와 URL

  • URL : 브라우저 등으로 웹 페이지를 표시하기 위해 입력하는 주소.  ex) https://www.google.co.kr  
  • URI (Uniform Resource Identifiers) :
    • Uniform : 통일된 서식 결정. 여러 종류의 리소스 지정 방법을 구별없이 취급, 새로운 스키마 도입을 용이하게 함.
    • Resource : '식별 가능한 모든 것'. 도큐먼트 파일, 이밎, 서비스 등 구별가능한 모든 것
    • Identifier : 식별 가능한것을 참조하는 오브젝트. 즉, URI는 스키마를 나타내는 리소스를 식별하기 위한 식별자.
  • URI 는 리소스를 식별하기 위해 문자열 전반을 나타내며, URL은 리소스의 장소를 나타냄. URL 은 URI의 서브셋.

 

URL 포맷

 

절대 URI 포맷 ex)

http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1

 

스키마 + 자격정보(credential) + 서버 주소 + 서버포트 + 계층적 파일 path + 쿼리 문자열 + 프래그먼트 식별자

 

  • 스키마 : http 또는 https 같은 스키마를 사용하여 리소스를 얻기 위해 사용하는 프로토콜 지시.
  • 자격정보(크레덴셜) : 서버로부터 리소스 취득하기 위한 자격정보. 옵션
  • 서버주소 : DNS 이름 또는 IP 주소를 지정.
  • 서버포트 : 서버의 접속대상이 되는 네트워크 포트 번호 지정. 옵션. 생략시 디폴트 포트 사용
  • 계층적 파일 패스 : 특정 리소스를 식별하기 위한 서버상의 파일 패스
  • 쿼리 문자열 : 파일패스로 지정된 리소스에 임의의 파라미터 넘겨줌. 옵션
  • 프래그멘트 식별자 : 취득한 리소스에서 서브 리소스 가리키기 위해 사용. 옵션

 

느낀점

URI URL 차이점 알게되어 좋았다! 전공에서 배웠던것보단 덜 자세하게 배운듯.

'CS > Network' 카테고리의 다른 글

3장 ) HTTP 정보는 HTTP 메시지에 있다  (0) 2021.09.22
3장 ) 물리계층  (0) 2021.09.22
2장 ) 간단한 프로토콜 HTTP  (0) 2021.09.18
2장 ) 네트워크 기본 규칙  (0) 2021.09.18
1장 ) 네트워크 첫걸음  (0) 2021.09.12