웹프로그래밍/Jsp&Servlet

[JSP&Servlet] HTTP란?

닥스훈스 2019. 6. 26. 01:05

HTTP

TCP/IP 4계층에서 애플리케이션 계층에 해당하는 프로토콜
전송 계층에서 TCP를 사용하여 웹 브라우저와 웹 서버간에 통신하는 프로토콜
웹브라우저와 웹서버가 통신(요청, 응답)할 때 서로 약속된 요청, 응답메시지를 주고받으면서 통신이 이루어진다

  • 무연결
    HTTP는 클라이언트와 서버간에 요청이 있을 때 마다 독립적으로 연결하여 통신하는 방식이다
  • 무상태
    상태정보가 유지되지 않는 특성
    이전 요청 시 사용한 정보를 다른 요청에서도 계속 사용하고 싶다면, 서버나 클라이언트 측에 정보를 저장해 두고 계속 상태정보를 유지한 후 사용하는 정보 유지기술 필요
  • 요청, 응답
    요청정보와 응답정보를 주고받으면서 통신이 이루어지는 방식

웹서버 프로그래밍을 하려면  웹 서버와 클라이언트가 주고받는 요청 및 응답 메시지에 대한 이해가 우선으로 이루어져야 한다.

HTTP 요청정보

HTTP 요청정보는 웹 클라이언트가 웹서버에 서비스를 요청하면
(Ex. 웹 브라우저 주소줄에 URL입력 후 엔터, 웹 브라우저 화면의 링크 또는 버튼 클릭하는 동작...)
HTTP에 의하여 자동으로 만들어져 서비스를 요청받은 웹서버에 전달된다.

HTTP 요청정보의 구조

  1. HTTP 요청방식
    웹 클라이언트가 웹 서버에 요청하는 서비스 처리 방식을 지정하는 것
    Ex. GET, POST, PUT, DELETE
  2. 요청 URI(Uniform Resource Locator)
    웹 클라이언트가 웹서버에 요청한 서비스 문서의 정보
    네트워크 상에 존재하는 자원을 찾아가기 위한 정보

    프로토콜   서버주소   포트번호   서버자원정보

    프로토콜: 서버와 통신하기 위한 규약으로서 서버마다 사용하는 프로토콜이 정해져 있다
    Ex. 웹서버는 URL에 HTTP://로 표현, 오라클 DBMS는 jbdc:oracle:thin:@로 표현
    서버주소: 네트워크상에서 연결된 컴퓨터를 찾아가기 위한 정보, 서버가 동작하고 있는 컴퓨터 정보, IP주소 또는 도메인 이름으로 표현
    포트번호: 컴퓨터에서 동작하고 있는 서버로 접속하기 위한 정보, 웹서버에서 사용하는 포트번호는 80포트로 정해짐
    URI: 서버에서 서비스하는 서버의 자원 정보
  3. 헤더
    클라이언트의 요청에 따라 필요한 헤더만 사용된다
    name : content의 형식으로 정보들이 표현되며 content부분의 값들은 공백이나 탭으로 구분된다

 

HTTP 응답정보

웹서버에서 클라이언트로 보내지는 응답 정보 메시지

HTTP 응답정보의 구조

  1. 상태코드
    클라이언트의 요청에 대한 처리 결과
    1xx: 조건부 응답, 2xx: 성공, 3xx: 리다이렉션 완료, 4xx: 요청 오류, 5xx: 서버 오류
  2. 헤더
    클라이언트 서비스 요청에 대한 실행 결과를 웹 클라이언트가 올바르게 처리할 수 있게 하기 위한 정보들로 구성
    Cache-Control, Connection, Content-Encoding, Content-Encdoing, Content-type, Data, Server 등