Network_7계층 HTTP 프로토콜

HTTP(하이퍼 텍스트 전송 프로토콜)

  • www에서 쓰이는 핵심 프로토콜
  • 문서의 전송을 위해 쓰이며, 웹 애플리케이션에서 사용
  • 음성, 화상 등 여러 종류의 데이터를 MIME로 정의하여 전송 가능
  • 요청/응답에 기반하여 서비스 제공

 

HTTP 1.0

  • 연결 수립, 동작, 해제의 단순함이 특징
  • HTML 문서를 전송 받은 뒤 연결을 끊고 다시 연결하여 데이터를 전송
  • 단순 동작으로 인해 통신 부하 문제 발생

네트워크 부하 예시

 

HTTP 1.1 

  • HTTP 1.0과 호환 가능
  • Multiple Request 처리가 가능하여 Client의 Request가 많을 경우 연속적인 응답 제공
  • Pipeline 방식의 요청/응답 진행
  • HTTP 1.0과는 달리 Server가 갖는 하나의 IP Adress와 다수의 Web Site 연결 가능
  • 빠른 속도와 인터넷 프로토콜 설계에 최적화 될 수 있도록 Cache 사용
  • Data 압축해서 전달이 가능하도록 하여 전달하는 Data 양이 감소

 

HTTP 요청 프로토콜 구조

 

Request Line: 요청타입 + 공백 + URI + 공백 + HTTP버전

 

요청 타입 종류

  • GET: 클라이언트가 서버한테 데이터를 요청/응답
  • POST: 클라이언트가 서버한테 데이터를 요청/응답
  • COPY: 파일을 다른 위치로 복사하기 위해 사용
  • MOVE: 파일을 다른 위치로 이동하기 위해 사요
  • DELETE: 서버에서 문서를 제거하기 위해 사용
  • 일반적으로 COPY, MOVE, DELETE는 클라이언트가 서버의 데이터를 컨트롤 할 수 없도록 막음
  • GET과 POST의 차이점
    • GET: Request Line에 보낼 데이터를 작성
    • POST: Body에 보낼 데이터를 작성 (민감한 정보의 데이터)
  • POST 또한 Body에 중요한 정보가 노출될 가능서이 존재하기에 민감한 정보는 HTTPS를 사용

 

URI

URI 구조

  • scheme: 프로토콜 종류를 작성
  • host: 도메인 주소 (도메인 주소가 IP주소로 자동 변환)
  • port: 포트번호 (웹 브라우저가 자동으로 작성하여 생략해줌)
  • path: 데이터 위치 경로
  • ?query: 클라이언트가 필요한 데이터에 대한 정보 값 (클라이언트가 서버에 전달하는 값임)

 

HTTP 응답 프로토콜

응답 프로토콜 구조

 

Status Line: HTTP 버전 + 공백 + 상태코드 + 공백 + 상태문구

 

상태코드

  • 2XX : 클라리언트 요청이 성공 (정상)
  • 4XX: 클라이언트 요청이 불완전하여 다른 정보가 필요 (클라이언트 에러)
    • 403: 클라이언트가 권한이 없는 페이지를 요청
    • 404: 클라이언트가 서버에 없는 페이지를 요청
  • 5XX: Server의 오류를 만나거나 클라이언의 요청을 서버가 수행 불가 (서버 에러)
    • 500: Server 일부가 멈췄거나 설정 오류가 발생
    • 503: 최대 Session 수를 초과

 

HTTP 헤더 상세 구조

  • HTTP 요청 프로토콜: 일반 + 요청 + 항목 헤더
  • HTTP 응답 프로토콜: 일반 + 응답 + 항목 헤더

헤더 종류

  • Content-Length: 메시지 바디 길이를 나타냄
  • Content-Type: 메시지 바디에 들어있는 컨텐츠 종류 (ex: HTML 문서는 text/html)
  • Cookie: 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할
  • Host: 요청된 URL에 나타난 호스트명을 상세하게 표시
  • User-Agent: 클라이언트 프로그램에 대한 식별 가능 정보 제공
  • Server: 사용하고 있는 웹서버의 소프트웨어에 대한 정보 제공
  • Set-Cookie: 쿠키를 생성하고 브라우저에 보낼 때 사용. 

 

 

 

'Network' 카테고리의 다른 글

Network_NAT & 포트포워딩  (0) 2024.12.30
Network_TCP 통신과정  (0) 2024.12.30
Network_4계층 프로토콜  (0) 2024.12.29
Network_라우팅 테이블  (0) 2024.12.29
Network_ICMP 프로토콜, IPv4 조각화  (0) 2024.12.29