티스토리 뷰
반응형
HyperTest
여러 문서를 상호간에 관련 짓는 것
WWW의 구성 기술
- 문서 기술 언어: HTML
- 문서 전송 프로토콜: HTTP
- 문서 주소 지정하는 방법: URL
WWW의 의미
- 초기: 하이퍼텍스트를 열람할 수 있는 클라이언트 애플리케이션의 명칭 (현재의 웹 브라우저)
- 현재: 시스템의 명칭
HTTP의 진화
- HTTP/0.9 : HTTP 1.0 이전이라는 의미
- HTTP/1.0 : 최초로 정식 사양으로 공개
- HTTP/1.1 : 현재 가장 많이 사용되는 것
TCP
- HTTP는 TCP/IP 프로토콜 중의 하나
- TCP/IP는 프로토콜의 집합
💡 프로토콜
통신을 위한 규칙
TCP/IP 4계층
- 애플리케이션 계층: 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임 결정
- 트랜스포트 계층: 애플리케이션 계층에 네크워크로 접속되어 있는 컴퓨터 사이에 데이터 흐름을 제공 (ex) TCP, UDP
- 네트워크 계층: 패킷의 이동 관리 (패킷: 전송하는 데이터의 최소 단위)
- 링크 계층: 하드웨어적인 면을 처리
계층화의 장점
- 버전의 변경이 있다면, 변경된 계층만 수정하면 됨
- 설계가 편리
TCP/IP 통신의 과정
- 계층을 순서대로 거쳐 상대와 통신
- 송신하는 층은 애플리케이션 계층에서부터 내려가고 수신하는 측은 애플리케이션 계층으로 올라감
HTTP를 통한 통신의 흐름 - 송신자의 예
- 애플리케이션 계층: 접속할 웹 페이지에 대한 HTTP 리퀘스트 지시
- 트랜스포트 계층: 1에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트 번호를 붙여 네트워크 계층에 전달
- 네트워크 계층: 수신지 MAC 주소를 추가하여 링크 계층에 전달
- 네트워크를 통해 송신
💡 캡슐화
헤더에 해당 계층에 필요한 정보를 추가
IP(Internet Protocol)
- 네트워크 층에 해당
- 'IP' != 'IP 주소' : 두 개는 다른 것이다!
- 패킷의 상대방에게 전달하는 역할
- IP 주소: 각 노드에 부여된 주소
- MAC 주소: 각 네트워크 카드에 할당된 고유의 주소
IP 통신은 MAC 주소에 의존해서 통신
- ARP(Address Resolution Protocol)와 MAC 주소를 사용하여 목적지를 찾음
- ARP: 주소를 해결하기 위한 프로토콜. 수신지의 IP 주소를 바탕으로 MAC 주소를 조사.
TCP (Transfer Control Protocol)
- 트랜스포트 층에 해당
- 신뢰성 있는 바이트 스트림 서비스 제공
- 바이트 스트림 서비스: 용량이 큰 데이터의 전송을 위해 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것
- 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대방에게 보내고 정확하게 도착했는지 확인
three way handshaking
- TCP의 데이터 전송 방식
- 'SYN'과 'ACK'라는 TCP 플래그를 사용하여 패킷을 보내고, 전송 여부를 확인
- 송신측은 SYN 플래그로 상대에게 접속함과 동시에 패킷을 보냄
- 수신측은 SYN/ACK 플래그로 송신측에 접속함과 동시에 패킷을 통신한 사실을 전함
- 송신측은 ACK 플래그로 패킷 교환이 완료되었음을 전함
DNS(Domain Name System)
- 응용 계층 시스템
- 도메인 이름과 IP 주소 이름 확인을 제공
- 도메인명에서 IP 주소를 변환하거나 IP 주소를 도메인명으로 변환
google.com에 접속을 할 때
- 클라이언트는 DNS에 웹 페이지의 IP 주소를 요청
- DNS는 클라이언트에게 IP 주소를 전송
- 클라이언트는 HTTP 담당 웹 서버에게 보낼 HTTP 작성
- TCP는 HTTP 메시지를 패킷으로 분해
- IP는 상대가 어디에 있는지 찾아 전송
- TCP는 상대방으로부터 패킷 수신하여 분해된 패킷을 조립
- 웹 서버에 대한 리퀘스트 처리
URL(Uniform Resource Locator)
웹 페이지를 표시하기 위해 입력하는 주소
URI(Uniform Resource Identifier)
리소스 식별자
- Uniform: 통일된 서식
- Resource: 식별 가능한 모든 것
- Identifier: 식별 가능한 것을 참조
💡 URL 🆚 URI
URI는 리소스를 식별하기 위한 문자열 전반, URL은 리소스의 장소(네트워크 상의 위치)이다. URL은 URI의 부분집합이다.
URL
http://user:pass@www.sdardew.com:8080/dir/index.htm?uid=1#valley
- http://
- 스키마
- 리소스를 얻기 위해 사용하는 프로토콜 표현
- 대소문자 구분 없음
- 마지막에 콜론 ( : )이 붙음
- user:ass
- 자격 정보
- 서버로부터 리소스 취득을 위한 자격 정보
- 유저명과 패스워드를 지정
- 옵션
- www.sdardew.com
- 주소
- 8080
- 포트 번호
- 생략시에는 디폴트 포트 번호가 사용됨
- 옵션
- dir/index.htm
- 계층적 파일 위치
- 리소스를 식별
- 서버 상의 파일 위치
- uid=1
- 쿼리 문자열
- 리소스에 넘겨줄 파라미터
- 옵션
- valley
- 프래그먼트 식별자
- 서브 리소스를 가리킴
- 옵션
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- solidity
- postman
- 확장 함수
- Basic Type
- Kotlin
- squash merge
- string
- DGS Framework
- graphql
- go 특징
- 코틀린
- 네이버 2022 공채
- Python
- pm.test
- postman tests
- github
- hashcode
- Kotlin In Action
- Squash and merge
- 2차 인터뷰
- java
- pm.expect
- git
- postman collection
- 주생성자
- downTo
- mysql
- python3
- 코딩테스트
- 1차 인터뷰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함