데이터를 특정 서버에 요청하기 위해서 IP & PORT 필요
숫자로 이루어진 IP를 하나하나 기억하기는 사실 불가능
IP를 대신하기 위한 것이 DNS(Domain Name System)
특정한 이름이 IP를 대신하는 것이다.
www.naver.com , www.google.com 과 같은 것이 도메인이름 이다.
URI은 uniform Resource Indetifier의 약자
흔히 아는 URL도 URI의 범주 내부에 존재
HTTP(Hyper Text Transfer Protocol)
영상, HTML, JSON, xml등 필요한 모든 것을 담아서 전송 가능
HTTP/1.1, HTTP/2.0, HTTP/3.0 버전이 존재하고 앞에 두 버전은 TCP 기반 3.0은 개발 중
클라이언트 / 서버 구분
request, response 구조
클라이언트측에서 서버로 요청을 보내고 응답을 대기하는 상태
서버는 클라이언트의 요청에 응답을 만들어 전송하는 구조
무상태 프로토콜(stateless)
서버가 클라이언트의 상태를 보존하지 않는 특징
1번 고객이 제품을 산다는 상태를 보존한 채로 서버가 다운 되면 다른 서버로 요청을 보내도 그 서버는 1번 고객의 제품 구매 여부를 모른다.
이는 장점과 단점을 명확히 가진다.
비연결성
HTTP는 연결을 유지하지 않음
서버자원을 효율적으로 사용 가능 ,TCP/IP 연결은 3way hand shake를 새로 해야한다는 문제 있음 (지속 연결로 문제 해결)
한번 TCP/IP를 연결하면 바로 끊는게 아니라 일정 시간 동안 연결 유지
HTTP Header
HTTP 전송에 필요한 모든 부가 정보는 헤더에 포함되어 전송
메세지 바디의 내용, 크기, 압축, 인증 등 대부분 포함