[네트워크] HTTP 프로토콜

HTTP(Hypertext Transfer Protocol)

인터넷에서 클라이언트와 서버가 정보를 주고받기 위해 정한 프로토콜(규약)

HTTP 프로토콜의 특징

  • 어떤 종류의 데이터도 전송가능(이미지, 동영상, 오디오, 텍스트 등등)
  • 클라이언트가 먼저 서버에게 요청(Request) 을(연결), 서버는 클라이언트에게 응답(response) 을 보냄
  • 무상태(stateless) 프로토콜

    • 서버가 응답 후 바로 연결을 끊는 것이 무상태 프로토콜
    • 장점 : 불특정 다수를 대상으로 하는 서비스에 적합(연결 상태를 계속 유지하는 것이 아니기 때문에 최대 연결할 수 있는 수 보다 더 많은 처리가능)
    • 단점 : 클라이언트의 이전 정보를 알 수 없다. (정보를 유지하기 위해 Cookie, session 등이 있음)
  • URL(uniform Resource locator)

    • 인터넷상에서 자원의 위치
    • 구성 -> 접근 프로토콜:// ip 주소 혹은 도메인 이름 혹은 포트 번호(여기까지 물리적인 컴퓨터의 주소)/문서의 경로/문서의 이름
    • ip주소가 집이라면 포트번호는 집
    • 서버마다 포트값이 다르게 동작해야한다.
  • http 구조

    • 구조 그림
    • request
      • 요청 헤더의 첫 번째 줄 : 요청 메서드(get, post, put 등), 요청 URI(요청하는 자원의 위치 명시), 프로토콜 버전명으로 구성
      • 요청 헤더의 두 번째 줄부턴 여러줄의 헤더 정보로 구성 (헤더 명:헤더 값, 헤더 명:헤더 값, … , 헤더 명:헤더 값)
      • get 방식의 경우 요청바디가 비어있음
    • response
      • 응답 헤더의 첫 번째 줄 : 응답 HTTP 프로토콜의 버전, 응답 코드, 응답 메세지로 구성
      • 응답 바디에선 응답 리소스 데이터가 들어감