본문 바로가기
컴퓨터 네트워크

컴퓨터 네트워크 37장 - HTTP & CGI -

by ChocoPeanut 2017. 5. 11.

컴퓨터 네트워크 37

- HTTP & CGI -

 

HTTP분산 하이퍼미디어 환경에서 빠르고 간편하게 데이터를 전송하는 프로토콜이다. 웹 브라우저는 URL을 이용하여 원하는 자원을 표현한다. HTTP 메서드를 이용하여 데이터를 요청하거나 회신하는 과정을 반복한다. 클라이언트가 서버에 요청할 때에는 GET 메서드를 사용하고 클라이언트에서 서버로 회신할 때는 POST 메서드를 사용한다. HTTP는 클라이언트-서버 모델이므로 요청과 응답이 클라이언트와 서버로 존재한다. 요청은 HTTP 클라이언트가 서버에 요청을 전송하는 것이고 응답은 HTTP 서버가 요청의 결과인 응답 코드가 포함된 정보를 회신하는 것이다.



비상태 연결은 요청과 응답 이후 연결이 끊어지는 프로토콜을 의미하는데 HTTP의 경우 요청과 응답이 진행되고 TCP 연결이 해제되기 때문에 둘 사이에는 연결 존재에 따른 상태 정보가 존재하지 않아 비상태 프로토콜로 분류된다.


MIMEMultipurpose Internet Message Extensions 의 약자로 기존 ASCII문자로 구성된 텍스트만이 전송 가능했던 전자우편을 멀티미디어 데이터 전송도 가능하도록 확장한 것을 의미한다. HTTP의 요청 응답 메시지는 MIME 유사 구조를 사용해 데이터를 전송하게 된다. 웹 브라우저에서 발생하는 모든 메시지는 MIME 개체와 거의 유사하게 표현되며 서버에서 전송된 데이터도 MIME 개체로 표현된다. MIME HTTPMIME 유사 개체의 차이는 유사 개체에 Content-Length라는 헤더 필드가 있어 개체를 전송하는 데 필요한 바이트 수를 표시한다는 것이다.


요청 메시지는 요청문과 헤더, 공백, 바디로 구성된다. 요청문은 요청 메서드와 URL, HTTP 버전으로 구성된다. 요청 메서드에는 GET, HEAD, POST, PUT이 있는데 GETURL이 가리키는 웹 문서 전송을 요청하는 기능을 하고 HEAD는 문서 내용보다 특정 문서에 대한 정보만을 요청하는 기능을, POST는 클라이언트가 서버에 정보를 전송, PUT은 클라이언트가 서버에 문서 전송을 하는 기능을 한다.



응답 메시지는 요청 메시지와 유사하나 요청문 대신 상태문을 사용한다. 상태문에는 HTTP 버전과 상태 코드, 상태 이름이 들어가게 된다. 상태 코드와 이름의 예시를 살펴보면 200 OK는 요청이 성공적으로 수행되었다는 것을 의미하고 202 Accepted는 요청이 수신되었으나, 즉각 실행되지 않고 있다는 것을 의미한다. 400 Bad Request는 요청 메시지의 문법 오류가 있다는 것을 알려준다.



CGICommon Gateway Interface의 약자인데 HTML로만 웹 문서를 작성하는 경우 서버의 정보만을 일방적으로 받아들이는 단방향 정보 흐름에서 사용자가 입력하는 정보에 따른 처리 기능을 제공하는 기능을 수행한다. 독립된 개발과 컴파일, 개별 프로세스로 처리하는 부담 때문에 스크립트 언어를 선호하여 작성된다.



FORM 태그는 사용자의 입력을 서버에 전달해주는 기능을 수행하는 태그이다. FORM 태그의 속성 중에서 ACTION은 사용자 입력을 처리할 CGI 프로그램의 URL 주소를 가리키고 METHOD는 사용자 데이터를 넘기는 방식, ENCTYPE은 데이터 형식을 의미하게 된다. 웹 브라우저 화면에 사용자 정보의 입력 형식을 표시할 때에는 INPUT 태그를 이용한다.




출처 - 데이터 통신과 컴퓨터 네트워크