보통 인터넷이라고 하면 World Wide Web이라고 생각하기 쉽다. 하지만 World Wide Web이 인터넷의 전부는 아니다.
물리적인 하나의 컴퓨터에는 여러 개의 서버가 동작할 수 있고 각각의 서버들은 포트라는 값으로 구분돼서 동작한다.
이름 |
프로토콜 |
포트 |
기능 |
WWW |
HTTP |
80 |
웹서비스 |
SMTP |
25/110/114 |
이메일 서비스 |
|
FTP |
FTP |
21 |
파일 전송 서비스 |
DNS |
DNS |
23 |
네임서비스 |
NEWS |
NNTP |
119 |
인터넷 뉴스 서비스 |
인터넷은 TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크라고 할 수 있다.
HTTP (Hypertext Transfer Protocol) 란?
HTTP는 HTML같은 문서를 인출하기위한 프로토콜이다. 이것은 웹상의 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이다. 즉, 요청은 수신자, 일반적으로 웹 브라우저에 의해 시작된다. 전체 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등과 같이 가져온 여러 하위 문서로 재구성 된다.
클라이언트와 서버는 개별 메시지를 교환함으로써 통신한다. 일반적으로 웹 브라우저인 클라이언트가 보낸 메시지는 Request(요청)이라고 하며 서버가 응답으로 보낸 메시지를 Response(응답)이라고 한다.
[HTTP의 전체적인 흐름]
HTTP 메시지
HTTP의 메시지의 종류는 두가지로 Request(요청), Response(응답)이 있으며 각 요청에는 고유 한 형식이 있다.
Request 메시지
- Method: GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 온다.
- Path: 요청하는 자원의 URI를 명시
- Version of the protocol: HTTP 프로토콜의 버전이다.
첫번째 줄의 요청 메소드는 서버에게 요청의 종류를 알려주기위해 사용한다.
각각의 메소드의 기능을 살펴보면
GET: 정보를 요청하기 위해서 사용한다. (SELECT)
POST: 정보를 밀어넣기 위해서 사용한다. (INSERT)
PUT: 정보를 업데이트하기 위해서 사용한다. (UPDATE)
DELETE: 정보를 삭제하기 위해서 사용한다. (DELETE)
Response 메시지
- Version of the protocol: HTTP 프로톨의 버전
- Status code: 상태코드(성공, 리다이렉트, 실패)
- Status message: 상태 메시지 표시
장점
- 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있기 때문에 불특정 다수를 대상으로 하는 서비스에는적합하다.
단점
- 요청후 연결을 끊어버리기 때문에 클라이언트의 이전 상황을 알 수 가 없다. 그래서 이런 특징은 무상태(Stateless)라고 한다.
- 이런 단점을 보완하기 위해 Cookie, Session 같은 기술이 등장하게 되었다.
참고링크 : https://www.edwith.org/boostcourse-web/lecture/16661/ (부스트코스)
참고링크 : https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview#Basic_aspects_of_HTTP (An overview of HTTP)