본문으로 바로가기
728x90
반응형

오늘은 지난포스팅에 이어 HTTP가 어떻게 사용되는지에 대해 포스팅하겠습니다.


저희가 웹브라우저로 구글에 접속할 수 있는것은 웹브라우저에서 http request를 전송하고, http response를 받아서 화면에 뿌려주기 때문입니다.


먼저 http request 메시지 Format에 대해 알아보겠습니다.


 

 

 



Reque메시지는 스펙상 아래와 같습니다.



1 Request-Line
2 *(( general-header | request-header | entity-header ) CRLF)
3 CRLF
4 [ message-body ]


아래는 예시입니다.



GET /test.html HTTP/1.1

Date : Mon, 10 Aprial 2017 11:11:11:11 GMT

Content-Type : text/html; charset=UTF-8



1.  Request-Line ( GET /test.html HTTP/1.1 )


이것의 형식은 Method[space]Request-URI[SPACE]HTTP-VERSION[CRLF] 입니다. 아래는 예시입니다.


제일 앞의 GET는 HTTP Request Method입니다.


이 메소드들에 대해 간단히 설명하겠습니다.


 메소드

설명 

 GET 

 URI가 가진 정보를 검색하기 위해 서버측에 요청하는 형태

 POST 

 요청 데이터를 담아 서버에 전송.

 PUT

 POST와 유사한 형태지만 갱신위주로 사용.

 DELETE

 PUT과 반대로 서버의 파일을 삭제하기 위해 사용되는 형태

 HEAD

 GET과 유사한 방식이지만, 문서 정보를 요청.

 OPTIONS

 시스템에서 지원디는 메소즈 종류를 확인하기 위해 사용

 TRACE 서버에 LoopBack 메시지를 호출하기 위해 사용

 CONNECT

 프락시 기능을 요청할 때 사용


이 중에 GET, POST, PUT, DELETE를 많이 사용합니다.


/test.html은 URI 정보입니다. 예를 들면 www.abc.com/test.html을 웹 브라우저에 입력했다면,  URI 정보는 /뒤의 값(/test.html)이 되는 것입니다.


마지막 HTTP/1.1은 HTTP 버젼정보입니다.



2. *(( general-header | request-header | entity-header ) CRLF)

( Date : Mon, 10 Aprial 2017 11:11:11:11 GMT

Content-Type : text/html; charset=UTF-8 )


그 다음은 헤더정보들 입니다.


헤더 종류는 아주많습니다. 


여기서는 Date, Content-Type를 넣어봤습니다.


많은 헤더들 중에 필요한 정보들만 적으면 됩니다. 웹브라우져에서 자동으로 만듭니다.


 

 

 



3. CRLF


이것은 헤더의 끝을 알려주기 위해 공백을 사용합니다. 개행을 사용하면됩니다.



4. [ message-body ]


메시지 바디는 메소드에 따라 생략이 가능합니다.



다음, http response 메시지 Format에 대해 알아보겠습니다.



1 Status-Line
2 *(( general-header | response-header | entity-header ) CRLF)
3 CRLF
4 [ message-body ]


아래는 예시입니다.



HTTP/1.1 200 OK

Date : Mon, 10 Aprial 2017 11:11:11:11 GMT

Content-Type : text/html; charset=UTF-8


{

test

}



1. Status-Line ( HTTP/1.1 200 OK )


이것의 형식은HTTP-VERSIOPN[SPACE]STATUS-CODE[SPACE]Reason-Phrase CRLF 입니다.


제일 앞의 HTTP/1.1은 버젼정보입니다.


그 다음 200 은 상태 코드입니다.


상태 코드에대해 몇 가지만 적어보겠습니다.


 상태 코드

설명 

 1xx

정보성 

 2xx

성공 

 3xx

리다이렉션 

 4xx

클라이언트 오류 

 5xx

서버 오류 


위의 200은 성공에 대한 상태코드 입니다.


뒤의 OK는 상태코드에 따른 값입니다.


2. *(( general-header | response-header | entity-header ) CRLF)

Date : Mon, 10 Aprial 2017 11:11:11:11 GMT

Content-Type : text/html; charset=UTF-8 )


헤더 정보입니다. 


request 메시지와 비슷한 헤더들도 있습니다.


 

 



3. CRLF


여기도 마찬가지로 헤더의 끝을 알립니다.


4 [ message-body ]

( {

test

} )


여기는 메시지 바디 정보입니다. 바디 정보에 필요한 응답 메시지 등의 값들이 들어갑니다.



HTTP에 대해 좀 더 알아보았습니다.


오늘 포스팅은 여기까지하겠습니다.


감사합니다.

728x90
반응형