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

웹의 동작 ( HTTP 프로토콜 이해)

by 코리늬 2018. 4. 30.


- 하나의 컴퓨터에는 여러개의 서버가 존재 할 수 있으며 각각의 서버는 포트라는 값으로 구분되어 동작한다.

- 인터넷은 한마디로 네트워크들의 네트워크라고 한다. TCP/IP로 연결되어 있다.


- HTTP(Hypertext Transfer Protocol)이란?

  • 팀 버너스리와 그가 속한 팀에서 HTML 뿐만 아니라 웹 브라우저, 웹 브라우저 관련 기술과 HTTP를 발명했다.
  • HTTP는 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜이다.
  • HTTP는 어떠한 종류의 데이터도 전송할 수 있기 때문에 인터넷으로 동영상을 보고 파일을 다운로드 할 수 있다.
  • 현재 HTTP/2 버전까지 나와있는 상태이다.

- 네트워크 통신 방식에는 유상태 통신 방식과 무상태 통신 방식이 있다.
  • 유상태(Statefull)은 서버와 클라이언트가 계속 연결된 형태이기 때문에 지속적으로 데이터를 넘겨받을 수 있다.                       (채팅, 온라인게임에 적합), 하지만 서버가 동시에 접속을 유지할 수 있는 수는 정해져 있어서 클라이언트가 많아지면 서버의 수도 많아져야한다.
  • 무상태(Stateless)는 필요한 경우에만 응답을 받아 빠르게 데이터를 넘겨 받는다. 즉, 하나의 서버가 굉장히 많은 요청을 받을 수 있다.

- HTTP는 서버/클라이언트 모델을 따른다.
  • 클라이언트가 요청을 서버에게 보내면, 서버는 클라이언트에게 응답을 보낸다.
  • 장점 : 불특정 다수를 대상으로 하는 서비스에 적합. 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버간의 최대 연결수보다 훨씬 많은 요청과 응답을 처리할 수 있다.
  • 단점 : 연결을 끊어버리기 때문에, 클라이언트의 이전상황을 알 수 없다. 이러 한 특징을 무상태라고 한다. 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다.

- URL(Uniform Resource Locator)
  • 웹 상에서 자원들의 위치를 나타내기 위해 사용
  • 접근 프로토콜:// IP주소 or 도메인 이름/문서경로/문서이름                                                    http://www.naver.com/docs/index/html
  • 하나의 물리적인 컴퓨터에는 여러개의 소프트웨어 서버가 동작 할 수 있는데, 서버는 포트값(0보다 큰)이 다르게 동작해야한다.
  • HTML의 기본 포트값은 80


사진 출처 : 네이버 부스트코스 강의 中


- 웹의 동작

1. 클라이언트가 원하는 서버에 접속

2. 클라이언트가 서버에 요청

3. 요청에 따른 응답결과를 다시 클라이언트에게 전달 (전달하고 나면 연결이 끊김 Stateless)

   -이 요청한 데이터들은 그냥 전송되는게 아니고 요청데이터포맷이라는 형식에 맞춰 전달이 된다.

   -HTTP 요청 메시지는 헤더, 빈줄, 바디 3부분으로 나뉘게 된다.

  • Get(요청메소드), servletjquery?a=10&b(요청 URI, 요청하는 자원의 위치를 명시), HTTP/1.1(웹 프로토콜의 버전)


- 요청메소드 : 서버에게 요청의 종류를 알려주기 위해 사용한다.
  • GET : 정보를 요청하기 위해 사용(SELECT)
  • POST : 정보를 밀어넣기 위해 사용(INSERT)
  • PUT : 정보를 업데이트하기 위해서 사용(UPDATE)
  • DELETE : 정보를 삭제하기 위해서 사용(DELETE)
  • HEAD : (HTTP)헤더 정보만 요청. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해 사용.
  • OPTIONS : 웹 서버가 지원하는 메서드의 종류를 요청.
  • TRACE : 클라이언트의 요청을 그대로 반환. 주로 echo 서비스로 서버 상태를 확인하기 위한 목적으로 사용.

* GET 방식의 경우 요청 URI를 가져가기 때문에 요청 바디부분이 비어있음.

* POST나 PUT을 사용했을 때 요청바디 부분이 들어온다.


- 응답 데이터 포맷

  • 요청 데이터 포맷과 마찬가지로 3부분으로 이루어져있다.

  • 헤더부분 첫줄은 응답HTTP프로토콜 버전, 응답코드, 응답메시지로 이루어져 있다.




- 번외

HTTP와 HTTPS의 차이점은?

  • HTTPS는 HTTP의 보안이 강화된 버전이고 Port번호는 443번이다.


'웹 프로그래밍' 카테고리의 다른 글

Request, Response 객체 이해하기  (0) 2018.05.02
Servlet 이란?  (0) 2018.05.02
웹 서버와 WAS  (0) 2018.05.01
browser의 동작  (2) 2018.05.01
웹 Front-End 와 웹 Back-End  (0) 2018.04.30

댓글