Hyper Text Transfer Protocol: 두 판 사이의 차이

(새 문서: '''H'''yper '''T'''ext '''T'''ransfer '''P'''rotocol은 인터넷 상에서 데이터(주로 HTML파일)을 주고 받기 위한 네트워크 전송 규약이다. 버전은 1.0과 1.1...)
태그: 분류가 필요합니다!
 
편집 요약 없음
2번째 줄: 2번째 줄:
==전송방식==
==전송방식==
HTTP는 기본적으로 클라이언트가 서버에게 데이터를 요청한 뒤, 서버에서 데이터를 받으면 서버와의 연결을 끊는 방식이다. 전화로 따지자면, 한 번 전화를 걸어서 계속 이야기를 하는 방식이 아니라, 이야기할 게 있을 때마다 걸고, 이야기가 끝나면 전화을 끊는 방식이다.
HTTP는 기본적으로 클라이언트가 서버에게 데이터를 요청한 뒤, 서버에서 데이터를 받으면 서버와의 연결을 끊는 방식이다. 전화로 따지자면, 한 번 전화를 걸어서 계속 이야기를 하는 방식이 아니라, 이야기할 게 있을 때마다 걸고, 이야기가 끝나면 전화을 끊는 방식이다.
===요청(Response)===
==요청(Request)==
클라이언트에서 서버로 "이런이런 데이터를 주세요"라고 요청할 때 양식에 맞춰서 말을 걸어야 한다. 양식은 다음과 같다.
클라이언트에서 서버로 "이런이런 데이터를 주세요"라고 요청할 때 양식에 맞춰서 말을 걸어야 한다. 양식은 다음과 같다.
<pre>
<pre>
[메소드] 요청할데이터 [HTTP버전]\r\n
[메소드] 요청할데이터 HTTP/[HTTP버전]\r\n
HEADER1키 : 값\r\n
HEADER1키 : 값\r\n
HEADER2키 : 값\r\n
HEADER2키 : 값\r\n
34번째 줄: 34번째 줄:
**cookie
**cookie
**:쿠키(서버측에서 사용자 별로 따로 저장하는 데이터)를 다시 서버로  보내기 위한 헤버이다.
**:쿠키(서버측에서 사용자 별로 따로 저장하는 데이터)를 다시 서버로  보내기 위한 헤버이다.
==응답(Response)==
클라이언트에게서 요청을 받으면 서버에서는 그 요청에 따른 대응을 하여 응답을 보낸다.
<pre>
HTTP/[HTTP버전] [응답코드] [응답메시지]\r\n
응답헤더1:값\r\n
응답헤더2:값\r\n
...
응답헤더n:값\r\n
\r\n
[데이터]
</pre>

2016년 9월 26일 (월) 01:44 판

Hyper Text Transfer Protocol은 인터넷 상에서 데이터(주로 HTML파일)을 주고 받기 위한 네트워크 전송 규약이다. 버전은 1.0과 1.1그리고 2.0이 있다. 주로 사용되는 서버 포트는 80번이다. 간단하게 인터넷 주소에 http://이 붙은 것은 이것으로 데이터를 받는 것이라고 생각하면 된다.

전송방식

HTTP는 기본적으로 클라이언트가 서버에게 데이터를 요청한 뒤, 서버에서 데이터를 받으면 서버와의 연결을 끊는 방식이다. 전화로 따지자면, 한 번 전화를 걸어서 계속 이야기를 하는 방식이 아니라, 이야기할 게 있을 때마다 걸고, 이야기가 끝나면 전화을 끊는 방식이다.

요청(Request)

클라이언트에서 서버로 "이런이런 데이터를 주세요"라고 요청할 때 양식에 맞춰서 말을 걸어야 한다. 양식은 다음과 같다.

[메소드] 요청할데이터 HTTP/[HTTP버전]\r\n
HEADER1키 : 값\r\n
HEADER2키 : 값\r\n
...
HEADERn키 : 값\r\n
\r\n
  • 메소드(method)
    요청이 어떤 방식으로 해달라는 건지에 대한 것이다. 다음과 같은 것이 있다.
    • GET
      가장 기본적인 요청이다. 서버쪽의 데이터의 변경이 아닌, 그냥 달라고만 하는 것이다.
    • POST
      가장 기본적인 요청이다. 그저 데이터를 달라는 것이 아닌, 서버쪽으로 데이터를 전송하겠다는 의미이다.
    • PUT
    • DELETE
    • OPTION
      위 3개의 메소드는 웹브라우저에는 지원하지 않는 요청방식으로 주로 Rest API라는 데서 사용하는 메소드다.
  • HTTP버전
    1.0, 1.1, 2.0이 있으며, HTTP/버전 으로 보낸다.
  • HEADER
    기본적인 요청데이터의 경로 외에, 기타 서버측에 보낼 데이터가 이곳에 들어간다. 대표적으로 다음과 같은 헤더가 있다.
    • host
      1.1이후에서는 꼭 보내야 하는 헤더로 해당 사이트의 도메인이 들어가야 한다.
    • referer
      주로 웹브라우저에서 링크를 눌러 다른 페이지로 이동할 때, 서버에 "이 페이지에서 넘어왔어요"라고 알려 주기 위한 헤더다. 이것으로 다른 사이트에서 이미지를 그냥 복붙한 걸 차단하기도 한다.
    • user-agent
      클라이언트(유저)가 무엇인지를 설명하기 위해 넘겨주는 데이터다. 웹브라우저나 검색봇에 따라서 다른 데이터를 주기 위해서 사용한다.
    • cookie
      쿠키(서버측에서 사용자 별로 따로 저장하는 데이터)를 다시 서버로 보내기 위한 헤버이다.

응답(Response)

클라이언트에게서 요청을 받으면 서버에서는 그 요청에 따른 대응을 하여 응답을 보낸다.

HTTP/[HTTP버전] [응답코드] [응답메시지]\r\n
응답헤더1:값\r\n
응답헤더2:값\r\n
...
응답헤더n:값\r\n
\r\n
[데이터]