[HTTP Network] 1장 - 웹 네트워크의 기본
2023. 2. 20. 19:39ㆍComputer Science/네트워크

1. 웹은 HTTP로 나타낸다.
웹 브라우저는 웹 브라우저 주소 입력란에 지정된 URL에 의지해서 웹 서버로부터 리소스라고 불리는 파일 등의 정보를 얻는다.
이 때, 서버에 의뢰를 하는 웹 브라우저 등을 클라이언트(Client)라고 부른다.
클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것은 웹에서 HTTP라 불리는 프로토콜이다.
프로토콜: 프로토콜이라는 의미는 "약속"이다. 서로 다른 하드웨어와 운영체제 등을 가지고 서로 통신하기 위해서는 모든 요소에 규칙이 필요하게 되는데 이러한 규칙을 프로토콜이라고 부른다.
2. HTTP는 이렇게 태어났고 성장했다.
웹은 지식 공유를 위해 고안되었다.
- HTTP/0.9: 이 당시 HTTP는 정식 사양서가 아니었다. 0.9는 1.0 이전이라는 의미
- HTTP/1.0: 정식 사양, 초기의 사양이지만 현재에도 아직 많은 서버상에서 현역으로 가동되고 있는 프로토콜
- HTTP/1.1: 현재 가장 많이 사용되는 버전
3. 네트워크의 기본은 TCP/IP
인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있다. HTTP는 그 중 하나.
TCP/IP란 인터넷에 관련된 다양한 프로토콜 집합의 총칭
계층으로 관리하는 TCP/IP
계층화의 장점
- 사양이 변경된 해당 계층만 바꾸면 된다.
- 설계를 편하게 할 수 있다.
각 계층의 역할
애플리케이션 계층
- 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정
트랜스포트 계층
- 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공
- 트랜스포트 계층에는 서로 다른 성질을 가진 TCP와 UDP 두가지 프로토콜이 있다.
네트워크 계층(혹은 인터넷 계층)
- 네트워크 상에서 패킷의 이동을 다룬다.
- 패킷: 전송하는 데이터의 최소 단위
- 어떠한 경로(이른바 절차)를 거쳐 상대의 컴퓨터까지 패킷을 보낼지 결정하기도 한다.
링크 계층(혹은 데이터 링크 계층, 네트워크 인터페이스 계층)
- 네트워크에 접속하는 하드웨어적인 면을 다룬다.
TCP/IP 통신의 흐름

4. HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS
배송을 담당하는 IP
- IP는 계층으로 말하자면 네트워크 층에 해당
- 인터넷을 활용하는 거의 대부분의 시스템이 IP를 이용
- IP의 역할은 개개의 패킷을 상대방에게 전달하는 것
- IP 주소는 각 노드에 부여된 주소를 가리키고 MAC 주소는 각 네트워크 카드에 할당된 고유의 주소이다.
- IP 주소는 변경가능하지만 기본적으로 MAC 주소는 변경할 수 없다.
- 통신은 APR(Address Resolution Protocol)을 이용하여 MAC 주소에 의존해서 통신한다.
- 그 누구도 인터넷 전체를 파악하고 있지는 않다.
신뢰성을 담당하는 TCP
- TCP는 계층으로 말하자면 트랜스포트 층에 해당
- 신뢰성 있는 바이트 스트림 서비스를 제공
- 바이트 스트림 서비스: 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것
- 신뢰성 있는 서비스: 상대방에게 보내는 서비스
- 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대에게 보내고, 정확하게 도착했는지 확인하는 역할
- 상대에게 데이터를 확실하게 보내기 위해서 TCP는 "쓰리웨이 핸드셰이킹"이라는 방법을 사용
이름 해결을 담당하는 DNS
- DNS는 HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공

5. URI와 URL
URI(Uniform Resource Identifiers)는 리소스 식별자
- Uniform: 통일된 서식을 결정하는 것, 여러 가지 종류의 리소스 지정 방법을 같은 맥락에서 구별업이 취급할 수 있게 한다. 또한, 새로운 스키마(http:와 ftp 등) 도입을 용이하게 합니다.
- Resource: 식별 가능한 모든 것(도큐먼트 파일, 이미지와 서비스 등)
- Identifier: 식별 가능한 것을 참조하는 오브젝트이며 식별자로 불린다. 결국, URI는 스키마를 나타내는 리소스를 식별하기 위한 식별자이다. 스키마는 리소스를 얻기 위한 수단에 이름을 붙이는 방법(HTTP의 경우 'http:'를 사용)
URL 포맷

- 자격주소: 서버로부터 리소스를 취득하려면 자격정보가 필요하다. 유저명과 패스워드를 지정할 수 있다. 이것은 옵션
- 서버 주소: 완전 수식 형식인 URI에서는 서버 주소를 지정할 필요가 있다. DNS 이름이나 IPv4 주소를 대괄호로 묶어서 지정
- 서버 포트: 서버의 접속 대상이 되는 네트워크 포트 번호를 지정한다. 이것은 옵션이며 생략하면 디폴트 포트가 사용
- 계층적 파일 패스: 특정 리소스를 식별하기 위해서 서버 상의 파일 패스를 지정
- 쿼리 문자열: 파일 패스로 지정된 리소스에 임의의 파라미터를 넘겨주기 위해 쿼리 문자열을 사용한다. 이것은 옵션
- 프래그멘트 식별자: 주로 취득한 리소스에서 서브 리소스(도큐먼트 중간에 위치)를 가리키기 위해서 프래그멘트 식별자가 사용된다. 이것은 옵션
'Computer Science > 네트워크' 카테고리의 다른 글
| [HTTP Network] 5장 - HTTP와 연계하는 웹 서버 (0) | 2023.03.06 |
|---|---|
| [HTTP Network] 4장 - 결과를 전달하는 HTTP 상태코드 (0) | 2023.03.05 |
| [HTTP Network] 3장 - HTTP 정보는 HTTP 메시지에 있다. (0) | 2023.02.22 |
| [HTTP Network] 2장 - 간단한 프로토콜 HTTP (0) | 2023.02.22 |