수색…


비고

HTTP ( Hypertext Transfer Protocol )는 클라이언트 요청 / 서버 응답 모델을 사용합니다. HTTP는 상태 비 저장 프로토콜이므로 서버가 여러 요청 기간 동안 각 사용자에 대한 정보 또는 상태를 유지할 필요가 없습니다. 그러나 성능상의 이유로 TCP 연결 지연 문제를 피하기 위해 영구, 병렬 또는 파이프 라인 연결과 같은 기술을 사용할 수 있습니다.

버전

번역 노트) 출시 예정일
HTTP / 0.9 "구현 된대로" 1991-01-01
HTTP / 1.0 HTTP / 1.0의 첫 번째 버전, RFC에 포함되지 않은 마지막 버전 1992-01-01
HTTP / 1.0 r1 HTTP에 대한 최초의 공식 RFC 1996-05-01
HTTP / 1.1 연결 처리 개선, 이름 기반 가상 호스트 지원 1997-01-01
HTTP / 1.1 r1 명확한 키워드 사용법 정리, 메시지 프레임 수정 문제 1999-06-01
HTTP / 1.1 r2 주요 점검 2014-06-01
HTTP / 2 HTTP / 2의 첫 번째 사양 2015-05-01

HTTP 요청 및 응답

HTTP 클라이언트와 서버는 각각 HTTP 요청과 응답을 보냅니다.

HTTP는 웹 브라우저와 같은 HTTP 클라이언트가 네트워크를 통해 HTTP 요청을 클라이언트로 보내는 HTTP 서버로 보내는 HTTP 서버로 보내는 방법을 설명합니다.

HTTP 요청은 일반적으로 웹 페이지 나 이미지와 같은 온라인 리소스 요청이지만 폼에 입력 된 데이터와 같은 추가 정보를 포함 할 수도 있습니다. HTTP 응답은 일반적으로 웹 페이지 또는 이미지와 같은 온라인 리소스를 나타냅니다.

HTTP / 1.0

HTTP / 1.0은 RFC 1945 에 설명되어 있습니다.

HTTP / 1.0에는 사실상 웹상에 가상 호스트의 Host 헤더와 같은 몇 가지 기능이 필요하지 않습니다.

그러나 HTTP 클라이언트와 서버는 HTTP / 1.1 프로토콜 구현이 불완전한 경우 (예 : 청크 분할 전송 인코딩 이나 파이프 라이닝없이) HTTP / 1.0을 사용한다고 선언하거나 호환성이 성능보다 중요하다고 판단하는 경우가 있습니다 (예 : 로컬 프록시 서버).

GET / HTTP/1.0
User-Agent: example/1

HTTP/1.0 200 OK
Content-Type: text/plain

Hello

HTTP / 1.1

HTTP / 1.1은 원래 RFC 2616 (프로토콜) 및 RFC 2617 (인증)에서 1999 년에 지정되었지만이 문서는 현재 사용되지 않으므로 참조 용으로 사용해서는 안됩니다.

RFC2616을 사용하지 마십시오. 하드 드라이브, 책갈피에서 삭제하고 인쇄 된 사본을 굽습니다 (또는 책임감있게 재활용하십시오).

- Nottingham, HTTP WG 의장

HTTP가 오늘날 어떻게 구현되는지와 일치하는 HTTP / 1.1의 최신 사양은 새로운 RFC 723x에 있습니다.

HTTP / 1.1이 추가되었습니다.

  • 서버가 알 수없는 크기의 응답을 안정적으로 보낼 수있는 청크 분할 전송 인코딩
  • 영구 TCP / IP 연결 (HTTP / 1.0의 비표준 확장)
  • 다운로드를 다시 시작하는 데 사용되는 범위 요청,
  • 캐시 제어.

HTTP / 1.1은 HTTP 클라이언트가 응답을 기다리지 않고 한 번에 여러 요청을 전송하여 요청 - 응답 대기 시간을 줄일 수있는 파이프 라이닝을 도입하려고했습니다. 불행히도 일부 프록시에서는이 기능이 올바르게 구현되지 않아 파이프 라인 연결로 인해 응답이 삭제되거나 순서가 바뀌 었습니다.

GET / HTTP/1.0
User-Agent: example/1
Host: example.com

HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 6
Connection: close

Hello

HTTP / 2

HTTP / 2 ( RFC 7540 )는 간단한 텍스트 기반 요청 및 응답 헤더에서 프레임으로 전송 된 바이너리 데이터 형식으로 HTTP의 온 - 와이어 형식을 변경했습니다. HTTP / 2는 헤더 압축 ( HPACK )을 지원합니다.

이로 인해 요청의 오버 헤드가 줄어들었고 단일 TCP / IP 연결을 통해 동시에 여러 응답을 수신 할 수있었습니다.

데이터 형식이 크게 변경되었지만 HTTP / 2는 여전히 HTTP 헤더를 사용하며 요청과 응답은 HTTP / 1.1과 2 사이에서 정확하게 변환 될 수 있습니다.

HTTP / 0.9

존재하는 HTTP의 첫 번째 버전은 0.9이며 종종 " HTTP As Implemented "라고합니다. 0.9에 대한 일반적인 설명은 "전체 HTTP [ie 1.0] 프로토콜의 하위 항목"입니다. 그러나 이것은 0.9와 1.0 사이의 역량 차이를 설명하는 데 크게 실패합니다.

0.9 기능 헤더의 요청이나 응답도 없습니다. 요청은 하나의 CRLF로 끝나는 GET 행과 공백 다음에 요청 된 자원 URL로 구성됩니다. 응답은 단일 HTML 문서 여야합니다. 상기 문서의 끝은 접속 서버 측을 드롭함으로써 표시된다. 작업의 성공 또는 실패를 나타내는 기능이 없습니다. 유일한 대화 형 속성은 <isindex> HTML 태그와 밀접하게 연결된 검색 문자열 입니다.

HTTP / 0.9의 사용은 오늘날에는 드물게 발생합니다. tftp 대신 임베디드 시스템에서 볼 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow