본문 바로가기
웹 프로그래밍/HTTP

HTTP 프로토콜의 이해

by Backchus 2019. 1. 23.


보통 인터넷이라고 하면 World Wide Web이라고 생각하기 쉽다. 하지만 World Wide Web이 인터넷의 전부는 아니다.

물리적인 하나의 컴퓨터에는 여러 개의 서버가 동작할 수 있고 각각의 서버들은 포트라는 값으로 구분돼서 동작한다.


이름 

프로토콜 

포트

기능 

 WWW

 HTTP

 80

웹서비스

 Email

 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)