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

Jaedeok Lee·2021년 8월 14일
0

웹(Web)

목록 보기
1/2
post-thumbnail

인터넷(네트워크 통신)의 이해

보통 인터넷이라하면 www를 생각한다. 그 만큼 많은 사람들이 웹 브라우저를 사용한다.
물리적인 하나의 컴퓨터에는 여러개의 서버가 동작할 수 있다. 각각의 서버들은 포트라는 값으로 구분되어 동작한다.

  • 인터넷 != WWW(World Wide Web)
    인터넷 기반의 대표 서비스 중 하나
이름프로토콜포트기능
WWWHTTP80웹서비스
EmailSMTP/POP3/IMAP25/110/114이메일 서비스
FTPFTP21파일 전송 서비스
DNSTCP/UDP53네임 서비스
NEWSNNTP119인터넷 뉴스 서비스
  • 인터넷(Internet)
    TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크 (네트워크의 결합체)

HTTP(HyperText Transfer Protocol)란?

인터넷은 웹에서 서로 통신하기 위해 HTTP를 사용한다.
HTTP는 어떤 종류의 데이터도 전송할 수 있도록 설계되어 있다.
예를 들어 이미지, 동영상, 텍스트 등 종류를 가리지 않고 전송 가능하다.

  • HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜(protocol)이다.
  • HTTP는 계속 발전하여 HTTP/2까지 버전이 등장한 상태이다.

HTTP 작동방식


클라이언트가 요청을 서버에 보내면 서버는 클라이언트에게 응답을 보낸다. 여기서 클라이언트가 "먼저" 요청을 보낸다.

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

URL(Uniform Resource Locator)


URL은 위 사진과 같이 프로토콜의 종류://자원이 있는 서버의 IP주소 or 도메인 주소 or 포트번호/자원의 위치/웹페이지로 되어 있다.

물리적인 서버를 찾기 위해 반드시 필요한 것은 IP주소도메인 주소이다. 이렇게 찾은 물리적인 서버 안에 존재하는 소프트웨어 서버를 찾기 위해서는 포트값이 필요하다.
여기서 IP주소는 집주소라 생각하고 포트를 집안에 있는 방들이라 생각하면 된다.
http 서버는 기본 포트 값이 80번이다.

  • 인터넷상 자원의 위치
  • 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

HTTP(HyperText Transfer Protocol)

웹이 동작하는 부분을 살펴보면 반드시 클라이언트가 먼저 원하는 서버에 접속을 해야한다. 그리고 클라이언트는 서버에게 요청을 하게 되는데 서버는 아무거나 주지 않고 반드시 클라이언트가 접속해서 요청을 했을 때 요청에 따른 응답 결과를 다시 클라이언트한테 응답해주는 과정을 거치게 된다.
이 응답이 끝나고 나면 위에서 말한 stateless와 같이 서버와 클라이언트의 연결은 끊기는 상태로 유지가 된다.

요청 헤더 부분의 첫번째 줄을 보면 GET이 보이는데 이 부분이 요청 메서드이다. 이 다음에 나오는 부분을 요청 URI라 하는데 요청하는 자원의 위치를 명시해주는 부분이다.
마지막으로 나오는 부분이 http 프로토콜의 버전으로 웹 브라우저가 사용하는 프로토콜의 버전을 명시해주는 부분이라 생각하면 된다.

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

요청 바디에는 아무 것도 없는 것을 볼 수 있는데 실제 GET이라는 방식은 요청할 때 가지고 가야하는 자원들도 모두 URI에 붙여서 가지고 가기 때문에 요청 바디 부분이 비어있는 것이다.
바디 요소는 요청 메서드가 POST나 PUT을 사용할 때 들어오게 된다.

응답 데이터 포맷요청 헤더 부분과 같이 헤더 부분, 빈 줄 부분, 응답 바디 부분으

요청되는 데이터는 정해진 규칙이 존재하는데 이것을 요청 데이터 포맷이라 한다. 웹 브라우저는 요청 메시지를 갖는데 여기에 헤더부분, 빈 줄 부분이 요청 바디 부분 이렇게 세 부분으로 나누어 진다. 첫 줄에는 반드시 응답 HTTP 프로토콜의 버전 그 다음은 응답 코드 그리고 응답 메시지 등이 나올 수 있다. 나머지 헤더부분에는 날짜, 웹 서버 이름/버전, 콘텐츠 타임, 캐시 제어 방식, 콘텐츠 길이 등의 값이 나오게 된다.

응답 바디는 실제 응답 리소스 데이터가 나오는 부분이다.


참고

profile
궁금하거나 추가해야 되는 부분 있으면 댓글 달아주세요~

0개의 댓글