[Web] 모든 개발자를 위한 HTTP 웹 기본 지식 - 강의 정리 - 1

JJAM·2022년 9월 2일
0
post-thumbnail

📖 인터넷 네트워크

📒 인터넷 통신

인터넷에서 컴퓨터 2대가 통신하기 위해서 어떻게 해야되는지 알아볼 것이다.

📒 IP(인터넷 프로토콜)

IP 주소를 통해 통신을 한다.

IP(인터넷 프로토콜)
지정한 IP 주소에 패킷(Packet)이라는 통신 단위로 데이터 전달

패킷(Packet)

클라이언트패킷을 노드를 통해 서버에 전달한다.

IP 프로토콜의 한계

  • 비연결성(패킷을 받을 대상이 없어도 패킷 전송)
  • 비신뢰성(패킷이 사라지거나, 순서대로 안 옴)
  • 프로그램 구분(같은 IP에 통신하는 애플리케이션이 둘 이상)

📒 TCP, UDP

IP 프로토콜의 한계를 해결하는 방법이 바로 TCP, UDP 이다.

메시지는 애플리케이션 계층부터 네트워크 인터페이스 계층까지 정보들을 추가하면서 차례대로 전달된다.

🖋️ TCP

TCP/IP 패킷(Packet)

TCP - 전송 제어 프로토콜 특징

  • 연결지향(TCP 3 way handshake)
  • 데이터 전달 보증
  • 순서 보장(순서 잘못되면 다시 보냄)

TCP 3 way handshake

클라이언트에서 SYN(접속요청) 을 보내면, 서버에서 ACK(요청수락)를 보내면서 SYN(접속요청)도 같이 보낸다. 그러면 클라이언트에서도 ACK(요청수락)를 서버에 보내 서로 연결한다.

🖋️ UDP

기능이 거의 없지만 PORT 정보가 추가되며, 단순하고 빠르다.

📒 PORT

하나의 클라이언트에서 둘 이상의 서버로 요청을 할 때 출발지 PORT목적지 PORT 정보를 이용해 구분한다.

ex) 게임 PORT 8090, 화상통화 PORT 21000, 웹 브라우저 PORT 10010

📒 DNS

IP는 기억하기 어렵고, 변경될 수 있어 전화번호부 역할을 하는 DNS(Domain Name System)을 사용한다.

클라이언트가 도메인 명으로 요청을 하면 IP 주소를 응답으로 받아, 해당 IP를 이용해 서버에 접속한다.


📖 URI와 웹 브라우저 요청 흐름

📒 URI

URI(Uniform Resource Identifier)

Resource를 식별할 때엔 위치(URL)이름(URN)으로 분류한다.

URL - Locator: 리소스가 있는 위치 지정
URN - Name: 리소스에 이름 부여 (URN 이름만으로 실제 리소스를 찾을 수 있는 방법 보편화X)

📒 URL 문법

scheme://[userinfo@]host[:port][/path][?query][#fragment]

scheme
주로 프로토콜 사용
ex) http, https, ftp

userinfo
사용자 정보 포함해서 인증, 거의 사용X

host
도메인명 또는 IP 주소 직접 사용 가능
ex) www.google.com

port
일반적으로 생략
ex) http - 80, https - 443

path
리소스 경로, 계층적 구조
ex) /search, /members/100

query
key = value 형태, ?로 시작, &로 추가
ex) ?q=hello&hl=ko

fragment
html 내부 북마크 등에 사용, 서버에 전송하는 정보X

📒 웹 브라우저 요청 흐름

클라이언트가 HTTP 요청 메시지를 생성하고, SOCKET 라이브러리를 통해 TCP/IP로 전달한다.
HTTP 메시지를 포함해 TCP/IP 패킷을 생성해 서버로 요청한다.

패킷을 받은 서버는 HTTP 응답 메시지를 만들어 클라이언트에게 보낸다.


지금까지 김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식 (유료강의) 강의를 참고하여 인터넷 네트워크, URI와 웹 브라우저 요청 흐름 에 대해 공부하였다.

profile
☘️

0개의 댓글