본문 바로가기
개발 관련 지식/웹 프로그래밍

HTTP 프로토콜

by 권태일1147 2020. 6. 4.

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

웹은 80번 포트, Email은 25번 포트, FTP는 21번 포트를 사용한다.

인터넷은 네트워크들의 네트워크라고 할 수 있다. 수많은 네트워크들의 결합체인 것이다. 이러한 인터넷은 TCP/IP라는 약속으로 연결되어 있다.

인터넷 중 웹에서는 서로 통신하기 위해 HTTP를 사용한다.

HTTP는 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜을 이야기한다.

HTTP는 어떤 종류의 데이터도 전송할 수 있도록 설계되어 있다. 이미지, 오디오, 텍스트, 동영상 등.

 

HTTP 작동 방식

HTTP는 서버/클라이언트 모델을 따른다. 

먼저 클라이언트와 서버를 연결한다. 그리고 클라이언트가 요청(request)을 서버에게 보내면 서버는 클라이언트에게 응답(response)을 보내게 된다. 

또한 HTTP는 무상태 프로토콜이라고도 한다. 서버는 응답을 하고 나면 바로 클라이언트와 연결을 끊는다.

장점은 불특정 다수를 대상으로 하는 서비스에 적합하다. 클라이언트와 서버가 계속 연결되어 있는 상태를 유지하는 것이 아니기 때문에 최대 연결 가능한 수보다 더 많은 요청과 응답을 처리할 수가 있게 된다.

단점은 연결을 끊어버리기 때문에 클라이언트가 이전에 뭘 했는지 알 수가 없다. 예를 들면, 쇼핑몰에서 뭔가를 하고 구매하려는데 연결을 바로바로 끊어버리기 때문에 뭘 구매하려고 했는지 알 수가 없게 되는 것이다.

이런 단점을 해결하기 위해 정보를 유지하기 위해 쿠키와 같은 기술들이 등장하게 된것이다.

 

URL

URL은 웹상에서 문서, 동영상, 이미지 등 자원들의 위치를 나타내기 위해서 사용된다.

URL은 크게 세부분으로 나눠진다.

  1. 프로토콜의 종류 (http)
  2. 자원이 있는 서버의 IP주소, 도메인주소, 포트번호 (www.abcd.co.kr)
  3. 자원의 위치 (/docs/index.html)

를 나타낸다.

IP는 집주소라고 생각하고, 포트번호는 집 안의 방들 이라고 생각하면 쉽겠다. 집 하나에 집주소가 하나있고, 그 집안에 방이 여러개 있는 것이다.

하나의 컴퓨터에 하나의 IP주소 있는 것이고, 그 컴퓨터에 여러개의 포트가 있는 것이다. 다만 조금 다른 점은 방에는 여러 사람이 들어갈 수 있지만 포트에는 하나의 서버만 할당될 수 있다는 점이다. HTTP 서버는 기본 포트값이 80번이다.

 

  1. 클라이언트와 서버가 연결된다.
  2. 클라이언트가 서버에 요청한다.
    • HTTP 요청 메세지
      • 요청 헤더
        • 요청 메서드 : GET, PUT, POST 등 요청 방식
        • 요청 URI : 요청하는 자원의 위치 (/abcd/exam.php?a=10&b=20)
        • HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전(HTTP/1.1)
      • 요청 바디
        • GET 방식일 때는 URI에 포함해서 요청하기 때문에 요청 바디가 없다.
        • POST, PUT 방식일 때 요청 바디가 필요하다.
    • HTTP 응답 메세지
      • 응답 헤더 
        • HTTP 프로토콜 버전, 응답 코드, 응답 메세지, 날짜, 웹서버 이름과 버전 등등
      • 응답 바디
        • 실제 응답 리소스 데이터가 나오는 부분이다.

 

'개발 관련 지식 > 웹 프로그래밍' 카테고리의 다른 글

멀티 쓰레드  (0) 2022.02.06
동기 비동기, 싱글스레드 멀티스레드  (0) 2021.01.29
WAS  (0) 2020.06.09
웹서버  (0) 2020.06.09
웹 프론트엔드, 백엔드  (0) 2020.06.04