Computer Science/Computer Network

[네트워크] Web, HTTP(Hyper Text Transfer Protocol)

oneonlee 2022. 10. 17. 22:16
반응형

Web and HTTP

Web

  • 웹 페이지는 HTML file + referenced object 로 이루어져 있는데, 이 때 각 object들은 URL을 통해 reference 되는 구조이다.
    • 여기서 URL이란, Uniform Resource Locator의 약자로 아래 그림과 같은 구조로 이루어져 있다.

HTTP(Hyper Text Transfer Protocol)

  • HTTP는 Application layer의 여러 프로토콜 중 하나로 주로 웹에서 많이 쓰이는 프로토콜이다.
  • HTTP 프로토콜을 통해 우리는 웹사이트에서 다양한 활동을 할 수 있다.

(1) HTTP의 특징

    1. HTTP는 TCP와 짝지어져 있다.
    • 처음에 TCP가 연결을 맺으면 이후 HTTP 메시지가 교환되는 구조이다.
    • TCP를 통해 통신을 하므로 신뢰성 있는 통신을 할 수 있다.
    1. HTTP는 'stateless' 하다.
    • 클라이언트의 상태나 과거 연결했던 기록 등을 신경쓰지 않고, 그냥 그 순간 요구하는 것만을 처리한다.
    • 이러한 특징 덕분에 간단하고 빠르게 프로토콜이 동작할 수 있다.

(2) HTTP 연결 종류

HTTP는 어떻게 연결을 하느냐에 따라서 다음과 같이 분류할 수 있다.

    1. non-persistent HTTP
    • HTTP의 초기 모델로, 한번의 연결에 1개의 컨텐츠를 처리하는 형식이다.
    1. persistent HTTP
    • 한 번 연결하는 동안에 컨텐츠를 계속해서 교환하는 형식이다.
    • TCP로 처음 연결하는데 RTT(Round Trip Time)이 너무 오래 걸려서 고안된 연결 방식이다.
    • RTT는 한 패킷이 end to end로 one-round-trip 하는데(다시 되돌아오는데) 소요되는 delay 시간을 나타낸다.

(3) HTTP request/response messages

HTTP 프로토콜에 사용되는 메시지들은 ASCII로 작성되어 일반 사용자들이 읽을 수 있는 형태이다. HTTP 프로토콜 메세지는 크게 HTTP request와 HTTP response로 구분할 수 있다.

HTTP request message

이름 그대로 클라이언트가 서버에게 컨텐츠를 요구할 때 사용되는 메시지로, 아래와 같은 구조로 되어 있다.

    1. request line
    • HTTP request 메시지의 가장 첫번째 줄에 위치한다.
    • GET, POST, PUT, DELETE와 같은 메소드 + 요청하는 object + 프로토콜 버전 정보 등으로 이루어져 있다.
    1. header line
    • 주요 내용들을 담고 있다.
    • 서버 호스트 주소, 클라이언트 사용자 정보, 클라이언트가 지원하는 언어 / 형식 / 파일 등을 나타낸다.

참고로 메소드 중 POST 라는 메소드는 클라이언트가 서버에게 변화를 알려줄 때 사용한다. 그래서 인스타그램에 게시글을 올리는 등 사용자가 웹페이지에 어떤 변화를 주면 POST 메소드를 이용한다.

같은 맥락으로 사용자가 구글 검색을 할때, 사용자가 입력한 검색어를 POST 메소드를 통해 서버에게 넘겨주는게 일반적이다. 하지만, POST 메소드보다 GET 메소드가 더 간단하므로, GET 메소드에 검색어를 parameter로 넘겨주는 형태로 이용하기도 한다.

HTTP response message

서버가 클라이언트에게 보낼 때 사용되는 메시지로, 아래와 같은 구조로 되어 있다.


참고 자료

  1. Computer Networking: A Top Down Approach 6th edition - Jim Kurose, Keith Ross Addison-Wesley March 2012
  2. https://ddongwon.tistory.com/m/72
  3. https://inyongs.tistory.com/m/57
반응형