[JSP강의노트] 제3강 HTTP와 CGI
HTTP 통신 개요
웹 서버의 역할
간단히 설명하면 웹 브라우저의 요청(request)를 받아 요청된 HTML 문서를 해당 경로에서 찾아서 결과를 응답(response)합니다.
HTTP 프로토콜
요청(Request)의 주요 구성 요소
HTTP 메서드
일반적으로 사용하는 GET, POST외에 HEAD, TRACE, PUT, DELETE, CONNECT가 있습니다.
URL
형식은 프로토콜명://서버명 또는 IP주소/경로 와 같이 사용합니다. 프로토콜로는 http, ftp, mailto, telnet, archie, gopher 등 다양한 프로토콜들이 존재하며 현재는 http와 ftp, mailto 등만이 사용됩니다.
폼 파라메터(Form Parameters)
URL에 이어 물음표(?)이후에 딸려 오며 '속성=속성값' 형식으로 사용됩니다. 여러 속성쌍을 사용할 경우는 '&'로 연결합니다.
응답(Response)의 주요 구성 요소
상태 코드
웹 서버는 웹 브라우저에 의해 요청된 HTML문서의 존재 유무, 접근 가능 여부에 따른 응답 코드를 응답에 실어 보냅니다. 1xx, 2xx, 3xx, 4xx, 5xx이 사용됩니다.
컨텐츠 타입(MIME types)
웹 문서인 HTML문서는 멀티미디어 데이터를 함께 전송하므로 해당 데이터의 타입을 MIME 타입으로 표시하여 웹 브라우저가 올바르게 표시할 수 있도록 합니다.
컨텐츠
컨텐츠 타입에 의해 지정된 데이터를 웹 브라우저에게 전달합니다.
GET과 POST
GET
GET은 가장 일반적인 요청 방법으로 URL에 속성쌍을 함께 실어 서버로 전송합니다. 웹 브라우저의 주소창에서 서버로 전송하는 속성쌍을 확인할 수 있습니다. 요청 메세지의 요청 헤더 부분에 속성쌍을 끼워넣어 전송하기 때문에 전송 길이에 제약을 받습니다.
POST
POST는 요청 메세지의 요청 헤더가 아닌 요청 메세지의 몸체 부분에 추가하여 전송합니다. 전송 길의의 제약을 받지 않고 GET과 달리 브라우저의 주소창에서 확인이 불가능합니다.
CGI(Common Gateway Interface)
펄(Perl)이나 C언어로 작성한 프로그램을 웹 서버가 실행 할 수 있도록 만들어진 규약입니다.