-
HTTP Request(웹 브라우져로부터)

웹 브라우져는 웹 서버와 접속이 확립되면 다음과 같은 요구를 보낸다. 
다음은 전형적인 HTTP request 구조이다.

리퀘스트 행
헤더
공백
본문(본문은 작성하지 않는 경우도 있다. )

다음은 전형적인 http request의 내용이다.


GET /books/search.asp HTTP/1.1             
Accept: image/gif, image/xxbitmap, image/jpeg, image/pjpeg,
application/xshockwaveflash, application/vnd.msexcel,
application/vnd.mspowerpoint, application/msword, */*
Referer: http://wahh-app.com/books/default.asp
Accept-Language: en-gb,en-us;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: wahh-app.com
Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502
(
                           공백행                               )


각각의 구조에 대해서 설명한다. 

리퀘스트 행과 메소드
request의 첫번째 행의 다음과 같이 이루어져 있다. 
GET /books/search.asp HTTP/1.1
메소드 URI http버전
GET 메소드를 이용하여 search.asp라는 문서를 요청하며, 이 때 HTTP1.1버전을 사용한다.

메소드란?
서버에게 사용자의 목적을 알리는 역할을 하는데, HTTP에서는 미리 정의 된 GET, HEAD, POST가 있다. 물론 다른 메소드도 지원하지만 현재 서버에서 폭넓게 지원하지는 않는다. 참고로 메소드는 대소문자를 구분한다. 그 예로는 다음과 같다.

GET 
URI의 내용을 취득하는 메소드로써, 웹 브라우저가 문서를 받아 보는데 사용되는 일반적인 방법이다. 사용자가 GET 메소드를 사용하여 요청할 때, 서버는 상태 표시줄, 헤더, 요청된 데이터로 응답한다. 서버에서 오류가 발생하거나 권한이 아닌 상태로 인해 요청을 진행시킬수 없다면 서버는 적절한 오류 메세지를 보낸다. 

HEAD
URI의 내용 중에 헤더 부분을 취득하는 메소드이다. 클라이언트는 다음과 같은 정보를 원한다.
 - 캐시 관련 질의에 유용한 문서의 수정 시간
 - 도착 시간을 측정하거나 문서의 더 작은 버전을 요청을 결정하는 페이지
 레이아웃에 유용한 문서의 크기
 - 클라이언트가 특정 문서만 검색할 수 있도록 해주는 문서의 유형
 - 주문형 서버 질의를 가능하게 하는 서버의 유형
서버가 제공하는 헤더 정보의 대부분은 선택적이며 모든 서버들이 제공하는 것은 아니다. 또한 클라이언트에게 유익한 설계는 요구하는 헤더 정보를 서버가 전달하지 못할 경우, 서버가 융통성 있게 응답하고 기본적인 조치를 취하도록 하는것이다.

POST
URI에 정보를 송신하는 메소드이다. POST 메소드는 다음과 같은 애플리케이션에서 사용될 수 있다. 
- 글을 올릴수 있는 네트워크 서비스
- 명령행에서 실행되는 프로그램
- 서버에 있는 문서의 주석
- 데이터베이스 조작

기타 메소드들에는 LINK, UNLINK, PUT, DELETE, OPTIONS, TRACE, CONNECT 등이 있다.

헤더 부분
통신의 부가정보(메타정보)가 포함되어 있다. 복수의 헤더를 붙이는 것도 가능하다.

호스트명
어떤 이름의 호스트에 액세스 할 것인지를 지정한다. HTTP1.1에서 필수로 바뀌었다. 

User-Agent
웹 서버에 액세스 하고 있는 웹 브라우저의 명칭이 표시된다. 

공백 부분 
헤더의 끝을 알리기 위해 공백 행을 추가한다.



'취업Q&A > 웹 기술면접' 카테고리의 다른 글

웹서버란?  (0) 2015.12.13
HTTP Header 에 대해  (0) 2015.12.09

다른 카테고리의 글 목록

취업Q&A/웹 기술면접 카테고리의 포스트를 톺아봅니다