검수요청.png검수요청.png

"HTTP"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
20번째 줄: 20번째 줄:
 
*2014년 6월 : WG는 RFC 2616를 obsolete 처리하는, 업데이트된 6 파트 사양을 출시하였다.
 
*2014년 6월 : WG는 RFC 2616를 obsolete 처리하는, 업데이트된 6 파트 사양을 출시하였다.
 
*2015년 5월 : HTTP/2가 RFC 7540로 출판되었다.<ref name="HTTP"></ref>
 
*2015년 5월 : HTTP/2가 RFC 7540로 출판되었다.<ref name="HTTP"></ref>
 
==동작방식==
 
HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에 요청/응답(request/response)방식으로 동작한다.
 
 
#클라이언트 연결
 
#클라이언트 측 브라우저에서 웹 리소스를 얻기 위해 브라우저에서 URL 발급
 
#HTTP Request
 
#서버에서 Request 메세지를 해석하고 사용자에게 요청한 자원 오류 메세지 등의 적절한 Http Response 반환
 
  
 
==특징==
 
==특징==
42번째 줄: 34번째 줄:
 
*HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에 요청(Request)/응답(Response)방식으로 동작한다.
 
*HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에 요청(Request)/응답(Response)방식으로 동작한다.
 
서버가 먼저 응답하지 않으며 사용자의 요청 한개에 대해 한개의 응답을 하는 방식이다.<ref>달나라 곰돌이, 〈[https://helloworld-88.tistory.com/38 (기본)HTTP란?]〉《헬로우월드》, 2018-07-18</ref>
 
서버가 먼저 응답하지 않으며 사용자의 요청 한개에 대해 한개의 응답을 하는 방식이다.<ref>달나라 곰돌이, 〈[https://helloworld-88.tistory.com/38 (기본)HTTP란?]〉《헬로우월드》, 2018-07-18</ref>
 +
 +
==동작방식==
 +
HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에 요청/응답(request/response)방식으로 동작한다.
 +
 +
#클라이언트 연결
 +
#클라이언트 측 브라우저에서 웹 리소스를 얻기 위해 브라우저에서 URL 발급
 +
#HTTP Request
 +
#서버에서 Request 메세지를 해석하고 사용자에게 요청한 자원 오류 메세지 등의 적절한 Http Response 반환
 +
 +
===HTTP Method===
 +
*GET : 서버에서 요청할 데이터를 URL에 담아서 보내는 형식
 +
*POST : 서버에서 요청할 데이터를 HTTP의 Body에 담아 보내는 형식
 +
*PUT : DB에 있는 기존의 데이터를 수정하기 위해 사용하는 메소드, Body에 데이터를 담아서 보낸다.
 +
*DELETE : DB에 있는 기존의 데이터를 삭제하기 위해 사용하는 메소드, Body에 데이터를 담아서 보낸다.
 +
*HEAD : HTTP 헤더 정보만 요청, 네트워크 대역을 절약하고 리소스의 크기를 확인할때 사용
 +
*OPTIONS : 요청한 URL에 어떤 메소드 요청이 가능한지 확인
 +
*TRACE : 서버측에서 받은 Request 라인과 헤더를 그대로 클라이언트로 반송
 +
*CONNECT : Forward Proxy에 HTTP TLS 터널링을 요청할때 사용
 +
 +
===HTTP응답코드===
 +
*100번대 : Request를 받고 처리 중에 있음을 의미
 +
*200번대 : Request를 정상적으로 처리함을 의미
 +
*300번대 : Request완료를 위해 추가 동작이 필요함을 의미
 +
*400번대 : 클라이언트 요청을 처리할 수 없어 오류가 발생함을 의미
 +
*500번대 : 서버에서 처리를 하지 못하여 오류가 발생함을 의미
  
 
==HTTPS==
 
==HTTPS==
55번째 줄: 72번째 줄:
 
==참고자료==
 
==참고자료==
 
* 〈[https://ko.wikipedia.org/wiki/HTTP HTTP]〉《위키백과》
 
* 〈[https://ko.wikipedia.org/wiki/HTTP HTTP]〉《위키백과》
* 달나라 곰돌이, 〈[https://helloworld-88.tistory.com/38 (기본)HTTP란?]〉《헬로우월드》, 2018-07-18
+
* 달나라 곰돌이, 〈[https://helloworld-88.tistory.com/38 (기본)HTTP란?]〉《곰돌이 놀이터》, 2018-07-18
 
* islove8587, 〈[http://bitly.kr/uwn74W HTTP란?]〉《네이버 블로그》, 2008-03-07
 
* islove8587, 〈[http://bitly.kr/uwn74W HTTP란?]〉《네이버 블로그》, 2008-03-07
 +
* 〈[https://ooz.co.kr/260 HTTP 서버 응답 코드 (Response Code) 정리]〉《이러쿵저러쿵》, 2015-06-27
  
 
== 같이 보기 ==
 
== 같이 보기 ==
64번째 줄: 82번째 줄:
 
* [[HTML]]
 
* [[HTML]]
 
* [[프로토콜]]
 
* [[프로토콜]]
 +
* [[클라이언트]]
  
 
{{인터넷|검토 필요}}
 
{{인터넷|검토 필요}}

2019년 7월 30일 (화) 11:17 판

HTTP는 Hypertext Transfer Protocol의 약자로서, 월드 와이드 웹을 이용하여 HTML로 작성된 하이퍼텍스트 문서를 주고받을 수 있는 프로토콜이다. HTTP 통신규약을 이용하여 웹서버웹브라우저 사이에서 정보를 주고받을 수 있다. 포트 번호는 80번이다. 보통 http:// 와 같이 소문자로 쓴다.

개요

HTTP(HyperText Transfer Protocol)는 WWW 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. TCP와 UDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다. HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.[1]

역사

  • 1965년 : 제너두 프로젝트에서 테드 넬슨에 의해 하이퍼텍스트라는 용어가 만들어졌으며, 제너두 프로젝트는 'As We May Think(1945년)'라는 수필에서 마이크로필름 기반 정보 수신 및 관리 "메멕스" 시스템을 기술한 버니바 부시의 비전(1930년대)에 의해 영감을 받았다.
  • 1989년 : 팀 버너스 리와 그의 팀은 CERN에서 HTML뿐 아니라 웹 브라우저 및 텍스트 기반 웹 브라우저 관련 기술과 더불어 오리지널 HTTP을 발명하였다. 버너스 리는 최초로 "월드와이드웹" 프로젝트를 제안하였으며, 이것이 현재의 월드 와이드 웹이다. 이 프로토콜의 최초 버전은 서버로부터 페이지를 요청하는 GET이라는 이름의 하나의 메소드만 있었다. 서버로부터의 응답은 무조건 HTML 문서였다.
  • 1991년 : 문서화된 최초의 HTTP 버전은 HTTP V0.9(1991년)이다.
  • 1995년 : 데이브 레겟은 HTTP 워킹 그룹(HTTP WG)을 이끌었으며 확장된 조작, 확장된 협상, 더 보강된 메타 정보, 또 추가 메소드와 헤더 필드를 통한 더 효율적인 보안 프로토콜을 갖춘 프로토콜을 확장하기를 바랐다.
  • 1995년 12월 : HTTP WG는 새로운 표준을 출간하기로 계획하였으며 당시 개발 중인 RFC 2068(이른바 HTTP-NG)에 기반한 이전 표준 HTTP/1.1에 대한 지원이 1996년 초에 주요 브라우저 개발자들에 의해 빠르게 채택되었다.
  • 1996년 : RFC 1945는 공식적으로 HTTP v1.0을 도입하였다.
  • 1996년 3월 : 이전 표준 HTTP/1.1을 지원한 웹 브라우저로 아레나, 넷스케이프 2.0, 넷스케이프 내비게이터 골드 2.01, 모자이크 2.7, 링크스 2.5, 인터넷 익스플로러 2.0이 있다. 새로운 브라우저의 최종 사용자 채택 속도를 빨랐다.
  • 1996년 3월 : 한 웹 호스팅 회사의 보고에 따르면 인터넷 상에서 사용 중인 브라우저 중 40% 이상이 HTTP 1.1과 호환되었다. 같은 웹 호스팅 회사는 1996년 6월 기준으로 서버에 접근하는 모든 브라우저들 가운데 65%가 HTTP/1.1 호환이라고 보고하였다.
  • 1997년 1월 : RFC 2068에 정의된 HTTP/1.1 표준이 공식적으로 출시되었다.
  • 1999년 6월 : HTTP/1.1 표준에 대한 개선과 업데이트가 RFC 2616으로 출시되었다.
  • 2007년 : 부분적으로 HTTP/1.1 사양을 개정하고 분명히 하기 위해 HTTPbis 워킹 그룹이 창설되었다.
  • 2014년 6월 : WG는 RFC 2616를 obsolete 처리하는, 업데이트된 6 파트 사양을 출시하였다.
  • 2015년 5월 : HTTP/2가 RFC 7540로 출판되었다.[1]

특징

  • TCP(Transmission Control Protocol) / IP(Internet Protocol)를 이용하는 응용 프로토콜(application protocol) 이다.

컴퓨터와 컴퓨터간에 데이터를 전송 할 수 있도록 하는 장치로 인터넷을 통해 원하는 정보를 주고 받는 기능을 이용하는 응용 프로 콜로 포트 번호는 기본적으로 80번을 사용한다.

  • HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜입니다.

예를들면 브라우저를 통해 사용자의 요청(Request)에 따라 서버와 접속하여 요청에 대한 응답(Response)의 데이터를 전송 후 연결 종료한다. 이러한 심플한 상태이기 때문에 전산 자원이 적게 든다는 장점이 있다. 하지만, 연결이 지속적이지 않기에 사용자와 종료 후 추가적인 요청을 처리할 수 없다는 단점이 있다. 이런 단점을 해소하기 위한 방법으로 Cookie, Session, URL Rewriting, Hidden Form Field 등이 사용된다. 참고로 HTTP와 반대로 연결 상태 유지하는 프로토콜은 FTP, Telnet이 있다.

  • HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에 요청(Request)/응답(Response)방식으로 동작한다.

서버가 먼저 응답하지 않으며 사용자의 요청 한개에 대해 한개의 응답을 하는 방식이다.[2]

동작방식

HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에 요청/응답(request/response)방식으로 동작한다.

  1. 클라이언트 연결
  2. 클라이언트 측 브라우저에서 웹 리소스를 얻기 위해 브라우저에서 URL 발급
  3. HTTP Request
  4. 서버에서 Request 메세지를 해석하고 사용자에게 요청한 자원 오류 메세지 등의 적절한 Http Response 반환

HTTP Method

  • GET : 서버에서 요청할 데이터를 URL에 담아서 보내는 형식
  • POST : 서버에서 요청할 데이터를 HTTP의 Body에 담아 보내는 형식
  • PUT : DB에 있는 기존의 데이터를 수정하기 위해 사용하는 메소드, Body에 데이터를 담아서 보낸다.
  • DELETE : DB에 있는 기존의 데이터를 삭제하기 위해 사용하는 메소드, Body에 데이터를 담아서 보낸다.
  • HEAD : HTTP 헤더 정보만 요청, 네트워크 대역을 절약하고 리소스의 크기를 확인할때 사용
  • OPTIONS : 요청한 URL에 어떤 메소드 요청이 가능한지 확인
  • TRACE : 서버측에서 받은 Request 라인과 헤더를 그대로 클라이언트로 반송
  • CONNECT : Forward Proxy에 HTTP TLS 터널링을 요청할때 사용

HTTP응답코드

  • 100번대 : Request를 받고 처리 중에 있음을 의미
  • 200번대 : Request를 정상적으로 처리함을 의미
  • 300번대 : Request완료를 위해 추가 동작이 필요함을 의미
  • 400번대 : 클라이언트 요청을 처리할 수 없어 오류가 발생함을 의미
  • 500번대 : 서버에서 처리를 하지 못하여 오류가 발생함을 의미

HTTPS

HTTPS는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다. HTTPS는 통신에서의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발했으며, 전자 상거래에서 널리 쓰인다. HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. 따라서 데이터의 적절한 보호를 보장한다. HTTPS의 기본 TCP/IP 포트는443이다. 보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 암호화 알고리즘 에 달려있다. HTTPS를 사용하는 웹페이지의 URL은 'http://'대신 'https://'로 시작한다. 웹에서 신용카드를 사용하는 사람들 사이의 흔한 오해 중 하나는, HTTPS를 이용할 때 HTTPS가 “완벽한”보호를 제공해준다고 생각하는 점이다. 그러나 실제로 이것은 웹 서버와 브라우저 간에 전송되는 카드 정보만이 암호화될 뿐이다. 카드 정보는 보통 서버 데이터베이스에 저장되며 (많은 경우 신용카드 처리기에는 전송되지도 않는다), 대개의 정보 유출은 내부 인력에 의해 이루어진다.[3]

각주

  1. 1.0 1.1 HTTP〉《위키백과》
  2. 달나라 곰돌이, 〈(기본)HTTP란?〉《헬로우월드》, 2018-07-18
  3. islove8587, 〈HTTP란?〉《네이버 블로그》, 2008-03-07

참고자료

같이 보기


  검수요청.png검수요청.png 이 HTTP 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.