인터넷 : TCP/IP 기반의 네트워크들의 결합체를 말한다.
웹(www) 은 인터넷 기반의 대표 서비스중 하나다.
(그 외 : Email(SMTP/POP3/IMAP) / FTP(파일전송) 등등)
웹에서는 서로 통신하기 위한 수단으로 http를 사용한다.
(HTTP: 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜이다.)
http는 image, video, text documents 등 종류를 가리지 않고 전송 할 수 있다.
최초 버전 : HTTP v0.9(1991년) , 현재 가장 많이 사용되는 버전 : http v1.1
server/client 모델을 따른다.(client가 먼저 server에게 요청을 보내면 server가 client에 응답을 보낸다.)
그러나 서로 요청 응답을 보내기 위해 연결을 먼저 한 후, server는 client에게 받은 요청을 응답 결과로 만들어 응답을 하고 나면 바로 client와의 연결을 끊어버린다.
이것을 'stateless(무상태)방식' 이라고 한다.
client가 server에 요청을 보내고 응답을 받을 때 data들의 정해진 규칙이 있는데, 이것이 요청 및 응답 데이터 포맷이다.
요청/응답 데이터 포맷은 헤더 부분/ 빈 줄 부분(to separate) /바디부분 세 부분으로 나뉘게 된다.
여러 줄의 헤더 정보가 나오며, 각각의 줄은 헤더 명과 헤더 값이 콜론(:)으로 구분되어 있고,
각 줄은 라인피드와 캐리지 리턴으로 구분된다.
GET 방식일 경우 없고, POST, PUT을 사용할 시 추가로 들어오게 됨.
GET : 정보를 요청하기 위해서 사용한다. (SELECT)
POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.
OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.
TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.
응답 HTTP 프로토콜의 버전 / 응답 코드 / 응답 메세지 등
날짜, 웹 서버 이름&버전, Content-Type, Content-Length, 캐시 제어 방식 등
실제 응답 리소스 데이터가 나오게 된다.
URL은 크게 세 부분으로 나누어지는데,
프로토콜 / 자원이 있는 서버의 IP 주소 혹은 도메인 주소, 포트 번호 / 자원의 위치
를 나타내게 된다.
하나의 물리적 컴퓨터에는(IP) 여러 개의 소프트웨어 서버가 동작할 수 있는데, 이 서버는 포트 값이 다르게 동작해야 된다.