HTTP에 대해 알아야 할 모든 것
HTTP (Hypertext Transfer Protocol)는 웹 브라우저와 서버가 통신하는 데 사용하는 네트워크 프로토콜 표준을 제공합니다. 웹 사이트를 방문 할 때 URL ( http : // www. )에 직접 쓰여 있기 때문에이를 쉽게 인식 할 수 있습니다.
이 프로토콜은 클라이언트 프로그램이 원격 서버에서 파일을 요청하는 데 사용된다는 점에서 FTP 와 같은 다른 프로토콜과 유사합니다. HTTP의 경우 일반적으로 웹 서버에서 HTML 파일을 요청하는 웹 브라우저이며 텍스트, 이미지, 하이퍼 링크 등으로 브라우저에 표시됩니다.
HTTP는 "무국적 시스템"이라고 불립니다. 이것이 의미하는 바는 FTP 와 같은 다른 파일 전송 프로토콜과 달리 요청이 이루어지면 HTTP 연결이 끊어진다는 것입니다. 따라서 웹 브라우저가 요청을 보내고 서버 가 페이지로 응답하면 연결이 닫힙니다.
대부분의 웹 브라우저가 HTTP로 기본 설정되어 있기 때문에 도메인 이름을 입력하고 브라우저에 "http : //"부분을 자동 채우게 할 수 있습니다.
HTTP의 역사
팀 버너스 - 리 (Tim Berners-Lee)는 최초의 월드 와이드 웹 (World Wide Web) 정의 작업의 일환으로 1990 년대 초에 초기 HTTP를 만들었습니다. 세 가지 기본 버전이 1990 년대에 널리 배포되었습니다.
- HTTP 0.9 (기본 하이퍼 텍스트 문서 지원)
- HTTP 1.0 (풍부한 웹 사이트 및 확장 성을 지원하는 확장)
- HTTP 1.1 (인터넷 RFC 2068에 명시된 HTTP 1.0의 성능 제한 사항을 해결하기 위해 개발 됨)
최신 버전 인 HTTP 2.0은 2015 년에 승인 된 표준이되었으며 HTTP 1.1과의 역 호환성을 유지하지만 추가적인 성능 향상을 제공합니다.
표준 HTTP는 네트워크를 통해 전송되는 트래픽을 암호화하지 않지만 HTTPS는 원래 SSL (Secure Sockets Layer) 또는 TLS (Transport Layer Security)를 사용하여 암호화를 추가하기 위해 개발되었습니다.
HTTP 작동 방식
HTTP는 클라이언트 - 서버 통신 모델을 사용하는 TCP 위에 구축 된 응용 프로그램 계층 프로토콜입니다. HTTP 클라이언트와 서버는 HTTP 요청 및 응답 메시지를 통해 통신합니다. 세 가지 주요 HTTP 메시지 유형은 GET, POST 및 HEAD입니다.
- 서버로 보낸 HTTP GET 메시지에는 URL 만 포함됩니다. 0 개 이상의 선택적 데이터 매개 변수가 URL 끝에 추가 될 수 있습니다. 서버는 URL의 선택적 데이터 부분 (있는 경우)을 처리하고 결과 (웹 페이지 또는 웹 페이지 요소)를 브라우저에 리턴합니다.
- HTTP POST 메시지는 요청 메시지 본문에 선택적 데이터 매개 변수를 URL 끝 부분에 추가하지 않고 배치합니다.
- HTTP HEAD 요청은 GET 요청과 동일하게 작동합니다. URL의 전체 내용으로 회신하는 대신 서버는 헤더 정보 (HTML 섹션에 포함되어 있음) 만 되돌려 보냅니다.
브라우저는 서버에 대한 TCP 연결을 시작하여 HTTP 서버와의 통신을 시작합니다. 8080과 같은 다른 포트가 때때로 대신 사용되지만 웹 브라우징 세션은 기본적으로 서버 포트 80을 사용합니다.
세션이 설정되면 사용자는 웹 페이지를 방문하여 HTTP 메시지 송수신을 시작합니다.
HTTP 관련 문제
HTTP를 통해 전송 된 메시지는 다음과 같은 이유로 성공적으로 배달되지 않을 수 있습니다.
- 사용자 오류
- 웹 브라우저 또는 웹 서버의 오작동
- 웹 페이지 생성 오류
- 임시 네트워크 결함
이러한 오류가 발생하면 프로토콜은 오류의 원인을 캡처하고 (가능한 경우) HTTP 상태 줄 / 코드 라는 오류 코드를 다시 브라우저에보고합니다. 오류는 어떤 종류의 오류인지를 나타내는 특정 숫자로 시작합니다.
예를 들어, 4xx 오류는 페이지에 대한 요청을 올바르게 완료 할 수 없거나 요청에 잘못된 구문이 있음을 나타냅니다. 예를 들어, 404 오류 는 페이지를 찾을 수 없다는 것을 의미합니다. 일부 웹 사이트는 재미있는 맞춤 404 오류 페이지를 가지고 있습니다.