HTTP 튜토리얼
HTTP 시작하기
수색…
비고
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 / 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을 사용하지 마십시오. 하드 드라이브, 책갈피에서 삭제하고 인쇄 된 사본을 굽습니다 (또는 책임감있게 재활용하십시오).
HTTP가 오늘날 어떻게 구현되는지와 일치하는 HTTP / 1.1의 최신 사양은 새로운 RFC 723x에 있습니다.
- RFC 7230 : 메시지 구문 및 라우팅
- RFC 7231 : 의미와 내용
- RFC 7232 : 조건부 요청
- RFC 7233 : 범위 요청
- RFC 7234 : 캐싱
- RFC 7235 : 인증
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 대신 임베디드 시스템에서 볼 수 있습니다.