@기본 용어
- 서버 : 리소스라 불리는 파일 등 정보의 저장
- 클라이언트 : 서버에 의뢰하는 웹 브라우저 등
HTTP
(HyperText Transfer Protocol
) : 클라이언트와 서버까지의 문서 전송 흐름을 결정하는 프로토콜
@HTTP/1.1
- 1997년 1월 공개
- 현재 가장 많이 사용
- 현재 버전 : RFC2616
- 차세대 버전 HTTP/2.0이 책정되었지만 널리 사용되진 않음
@TCP/IP
1) 신뢰성을 담당하는 TCP
1.바이트 스트림 서비스 제공
- 바이트 스트림 : 큰 데이터를 단위 패킷(TCP 세그먼트) 로 작개 분해해 관리
- 이후 정확하게 목적지에 도착했는지 확인
2.쓰리웨이 핸드셰이킹(3way handshaking)
- 패킷 전송 후 보내진 여부를 상대방에게 확인
SYN
(Synchronization:동기화), ACK
(Acknowledgement:응답) 플래그 사용
- 통신이 끊겼을 시 패킷 재전송
2) 배송을 담당하는 IP
- 네트워크 계층 속 프로토콜
- 대부분의 인터넷 시스템에서 사용됨
- 개개의 패킷을 상대방에게 전달
1.IP 주소
2.MAC 주소
- 각 네트워크 카드에 할당된 고유 주소
- 변경 불가
- IP는 맥 주소를 통해 통신
3.ARP(Address Resolution Protocol
)
- 주소를 찾아가는 프로토콜
- 수신지의
IP
주소를 바탕으로 MAC
주소 조사
- 이 과정에서 중간 네트워크 기기들은 전체 인터넷을 알 수 없음
3) 캡슐화된 계층
- 4계층 : 애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 링크 계층
- 각 계층 별로 캡슐화 되어있음
1.애플리케이션 계층
- 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정
- 프로토콜 :
FTP
, DNS
, HTTP
등
2.트랜스포트 계층
- 네트워크에 접속한 두 컴퓨터 사이 데이터 흐름 결정
- 프로토콜 :
TCP
, UDP
등
- 역할 : 애플리케이션 계층 속 데이터를 통신하기 쉽게 조각냄
- 전송 : 안내번호, 포트번호 추가 후 네트워크 계층으로 전송
3.네트워크 계층(인터넷 계층)
- 네트워크 상 패킷의 이동을 결정
- 프로토콜 :
IP
- 패킷 : 전송하는 데이터의 최소 단위
- 역할 : 상대 컴퓨터까지 도달하기 위한 여러 네트워크 기기 통로 중 하나를 결정
- 전송 : 수신지
MAC
주소와 함께 데이터(패킷) 전송
4.링크 계층(데이터 링크 계층)
- 네트워크에 접속하는 하드웨어적인 면을 다룸
- 디바이스 드라이버, NIC, 케이블 등
@TCP/IP
통신 흐름
출처
- 프로토콜 :
HTTP
<-> TCP
<-> IP
<-> 네트워크
<-> 네트워크
(상대방) <-> IP
...
- 계층 :
- 송신 : 애플리케이션 -> 트랜스포트 -> 네트워크 -> 링크
- 수신 : 반대 방향
- 각 계층을 거칠 때마다
- 송신 : 헤더에 정보 추가
- 수신 : 사용한 헤더 삭제
@ 이름 해결을 담당하는 DNS
Domain Name System
- 도메인 이름 및
IP
주소 확인 기능 제공
도메인
(www.google.co.kr) <-> IP 주소
(127.000...) 변환
@ URI/URL
URL
(Uniform Resource Locator) : 웹페이지 상 표시 주소
URI
(Uniform Resource Identifiers) : 리소스를 식별하는 도구
- 통일된 서식의 리소스(서식)을 참조하는 식별자
HTTP
, FTP
, mailto
등 존재
1) URL 포맷
출처
- 절대 URL 포맷
http://
(스키마)
- (옵션)
user:pass
(자격정보)
@www.example.kr
(서버주소) : DNS 이름이나 IP 주소
- (옵션)
:80
(서버포트) : 생략 시 디폴트 포트
/index.html
(계층적 파일 패스) : 서버 안 파일 패스
?id=1
(쿼리 문자열) : 리소스에 넘길 파라미터 값 결정
- (옵션)
#ch1
(fregment 식별자) : 서브 리소스용
출처 : 그림으로 배우는 HTTP & Network
우와 사진 자료는 직접 만드신건가요! 깔끔하게 잘 정리되어있어서 편하게 읽었습니다 👍