>운영 및 유지보수 >안전 >HTTP 프로토콜에 대한 자세한 설명

HTTP 프로토콜에 대한 자세한 설명

青灯夜游
青灯夜游앞으로
2019-11-29 10:08:442915검색

HTTP 프로토콜에 대한 자세한 설명

1. HTTP 프로토콜 소개

HTTP(Hypertext Transfer) 프로토콜은 주로 웹 서비스에 사용되며 컴퓨터를 통해 텍스트 정보를 처리합니다. HTML(하이퍼텍스트 마크업 언어).

2. Http 프로토콜 버전:

0.9 버전: html 페이지만 지원(제거됨)
1.0 버전:
(1) MIME(다용도 인터넷 메일 확장) 메커니즘 도입, 이후 메커니즘, 멀티미디어 정보 전송 가능
(2) 지속 링크 기능을 지원하는 연결 유지 메커니즘을 도입합니다(그러나 이 연결 유지 원칙은 헤더에 특정 필드를 추가하여 구성되며 이 기능을 지원하지 않습니다).
(3) 캐시된 페이지 지원 기능 소개
버전 1.1: 더 많은 요청 연결 방법을 지원하고 영구 링크를 최적화하며 페이지 캐싱을 최적화하는 버전 1.0: HTTP 의미 최적화 전송을 제공합니다. , spdy 기술을 추가합니다. Spdy 기술: http 데이터 상호 작용, 특히 SSL 가속 메커니즘의 사용을 가속화할 수 있는 Google에서 도입한 기술입니다. 이는 일반적으로 https 프로토콜로 알려져 있습니다.

현재 인터넷에서 가장 일반적으로 사용되는 버전은 HTTP2.0 버전입니다. .

3. 일반적인 웹 페이지 유형:

정적 페이지:

일반적인 접미사:

  • 텍스트: html, htm, txt, css, doc;

    이미지 : gif, jpg, png;

  • 비디오: mp4, flv;

  • 요청 프로세스(그림 참조):


소켓은 애플리케이션 계층과 전송 계층 사이의 추상화 계층입니다. 소켓 TCP/IP 계층의 복잡한 작업을 애플리케이션 계층 호출을 위한 몇 가지 간단한 인터페이스로 추상화하여 네트워크에서 프로세스 통신을 실현하는 프로그래밍 인터페이스(API)입니다. TCP/IP는 프로토콜 스택일 뿐이며 특별히 구현되어야 하며 외부 작업 인터페이스(API)도 제공해야 합니다. 이것이 바로 소켓 인터페이스입니다. 소켓을 통해 TCP/IP 프로토콜을 사용할 수 있습니다.

HTTP 프로토콜에 대한 자세한 설명① 웹 클라이언트는 커널에 소켓을 등록합니다.

② 클라이언트는 브라우저를 통해 웹 서버에 데이터 요청을 보냅니다.

③ 웹 서버는 클라이언트의 요청 정보를 받습니다.

④ 클라이언트가 요청한 리소스가 로컬인 경우

⑤커널은 로컬 디스크의 데이터를 호출하고 서버에 데이터를 보냅니다.

⑥http는 응답 메시지를 통해 사용자가 요청한 리소스를 보냅니다.

특징: 개발자가 미리 작성하여 현재 파일 시스템에 저장, 응답 속도가 빠르고, 페이지 유지 관리가 번거롭고, 데이터 상호 작용이 좋지 않으며, 검색에 포함되기 쉽습니다.

동적 페이지:

일반적인 접미사: php, jsp, asp , net...

요청 프로세스:


정적 페이지와의 차이점은 사용자가 동적 콘텐츠를 요청하면 http 서버가 이때 백엔드 인터프리터를 호출하고 백엔드 인터프리터는 데이터를 가져와 인터프리터를 통해 실행하여 html 형식의 파일을 생성합니다. 그런 다음 응답 메시지로 구성되고 최종적으로 클라이언트의 요청에 응답합니다.

HTTP 프로토콜에 대한 자세한 설명특징: 웹 서버 자체는 동적 페이지 처리를 지원하지 않으며 이를 완료하려면 특수 해석기가 필요합니다. 페이지 데이터는 변경 가능하고 페이지 유지 관리는 비교적 간단하며 응답 속도는 느리고 데이터는 대화형입니다. , 페이지 액세스에 특수 기호가 포함되어 있습니까? , %, &(특수 기호)는 검색 엔진에 포함될 수 없습니다.

의사 정적 페이지

: 동적 페이지를 정적 페이지로 위장하고 검색 엔진에 포함되어 하드웨어 리소스를 소비합니다. 프로토콜 텍스트:

요청 메시지: 클라이언트 → 서버

클라이언트가 서버에 요청을 보냅니다. 다양한 웹사이트를 사용하여 다양한 리소스(html 문서)를 요청합니다. 요청 메시지 형식:

요청 라인 :

클라이언트가 요청한 리소스를 식별하는 데 사용됩니다. 요청 방법, 요청한 리소스 및 요청된 프로토콜은 무엇입니까? "공백"으로 직접 구분됩니다.

요청 헤더: HTTP 프로토콜에 대한 자세한 설명 기능은 클라이언트가 요청한 관련 콘텐츠(헤더가 두 개 이상 있을 수 있음)

빈 줄: 요청 헤더 뒤에 빈 줄이 있습니다. 이는 캐리지 리턴 문자와 문자를 보내 서버에 다음 콘텐츠를 알리는 데 사용됩니다. 줄 바꿈 문자 요청 헤더 정보가 더 이상 표시되지 않습니다.

요청한 페이지의 구체적인 내용은 무엇입니까?

응답 메시지: 서버 → 클라이언트

서버가 클라이언트의 요청에 응답합니다. 메시지 형식:

HTTP 프로토콜에 대한 자세한 설명

시작 라인: 응답에 사용된 http 프로토콜 버전, 응답의 상태 코드 및 상태 코드의 간략한 정보

응답 헤더: 요청 메시지와 유사합니다. 일반적으로 출발선 헤더 필드 뒤에 여러 개가 있습니다. 각 헤더 필드에는 콜론으로 구분된 이름과 값이 포함되어 있으며 하나 이상을 포함할 수 있습니다.

빈 줄: 마지막 응답 헤더 정보 뒤에 빈 줄이 있습니다. 캐리지 리턴 및 줄 바꿈 문자를 보내면 빈 줄 아래에 헤더 정보가 없음을 클라이언트에 알립니다.

; 페이지에 포함된 콘텐츠에 실제로 액세스합니다.

5. HTTP 요청 방법

HTTP 통신 프로세스 중에 각 HTTP 요청 메시지에는 클라이언트에게 서버를 요청하도록 알리는 데 사용되는 HTTP 요청 방법이 포함됩니다. 특정 특정 작업을 수행합니다.

공통 HTTP 요청 메소드: GET, POST, HEAD

HTTP 프로토콜에 대한 자세한 설명

6, HTTP 상태 코드

상태 코드 개요:

HTTP 프로토콜에 대한 자세한 설명

공통 상태 코드 설명:

HTTP 프로토콜에 대한 자세한 설명 만약 그렇다면 위 상태 코드에는 해당 정보가 없습니다.

HTTP 상태 코드

의 자세한 소개를 참조하세요. HTTP 사물 에는 HTTP 요청이 포함되며 해당 요청에 대한 응답을 an이라고 합니다. http 트랜잭션 또한 http 트랜잭션은 HTTP 요청과 HTTP 응답의 완전한 프로세스로 이해될 수 있습니다.

HTTP 프로토콜은 기본적으로 새 연결을 열고 닫으므로 시간이 많이 걸리고 대역폭을 많이 사용합니다. TCP의 느린 시작 기능으로 인해 각각의 새 연결 자체의 성능이 저하되므로 열 수 있습니다. 병렬 연결 수의 상한은 제한되어 있습니다. 따라서 기본적으로 영구 연결을 사용하지 않는 것보다 영구 연결 모드를 사용하는 것이 좋습니다. 요청 및 TCP 연결 끊김 과정에서 소요되는 시간이 줄어듭니다.

8. HTTP 리소스 리소스는 HTML 문서, 사진 등과 같이 HTTP 프로토콜을 통해 브라우저 또는 사용자 에이전트를 통해 서버에 요청하고 얻을 수 있는 콘텐츠입니다.

리소스 유형: MIME을 통해 표시됩니다.

일반적인 MIME 유형:

HTTP 프로토콜에 대한 자세한 설명URL, 전체 이름은 유니폼 리소스입니다. 위치, 중국어 번역은 웹 페이지 주소(웹 주소)라고도 알려진 URL(Uniform Resource Locator)입니다. 집 번호와 마찬가지로 이는 인터넷 리소스의 표준 고유 주소입니다. 일반인의 관점에서 URL은 인터넷 상의 정보 자원을 설명하는 데 사용되는 문자열로 주로 다양한 www 클라이언트 및 서버 프로그램에서 사용됩니다. URL은 통일된 형식을 사용하여 파일, 서버 주소 및 디렉터리 등을 포함한 다양한 정보 리소스를 설명할 수 있습니다. 엄밀히 말하면 각 URL은 인터넷 리소스를 식별하고 해당 리소스에 대해 작업하거나 리소스를 얻는 방법을 지정하는 URI입니다.

URL 형식은 다음 세 부분으로 구성됩니다. 첫 번째 부분은 프로토콜입니다(예: http). 두 번째 부분은 호스트 리소스 서버 IP 주소 또는 도메인 이름(포트 번호)입니다. 예: www.kgc.cn

세 번째 부분은 디렉터리 및 파일 이름과 같은 호스트 리소스의 특정 주소입니다. 예: Teacher/index.html

첫 번째와 두 번째 부분은 "://" 기호로 구분되고, 두 번째와 세 번째 부분은 "/" 기호로 구분됩니다. 첫 번째와 두 번째 부분은 필수이며, 세 번째 부분은 생략 가능

10. URI 소개

URI(Uniform Resource Identifier)는 중국어로 동일한 리소스 식별자라고 하며, 이를 식별하는 데 사용됩니다. 특정 인터넷 리소스의 이름 사용자가 특정 프로토콜을 통해 리소스와 상호 작용할 수 있도록 하는 문자열입니다. HTML 문서, 이미지, 비디오 클립, 프로그램 등을 포함하여 웹에서 사용할 수 있는 모든 리소스는 범용 리소스 식별자로 위치합니다. 따라서 URI를 사용하여 각 리소스의 이름을 식별할 수 있습니다.

11. http는 어떻게 여러 요청을 동시에 연결합니까?

http는 기본적으로 차단 모델에서 작동하고 기본적으로 한 번에 하나의 요청만 수신하기 때문입니다. . 요청 후 다음 요청을 받기 때문에 한 명씩만 오실 수 있습니다.

그래서 우리는 사용자 요청에 동시에 응답하고 다중 프로세스 모델이 필요합니다. 웹 서버 자체는 사용자 요청에 응답하기 위해 여러 하위 프로세스를 생성합니다. 즉, 사용자 요청이 웹 서버로 전송되면 기본 웹 프로세스는 사용자 요청에 직접 응답하지 않고 하위 프로세스를 생성합니다. 이 방법으로 하위 프로세스가 이 사용자와 연결을 설정하면 사용자 요청에 응답합니다. 웹의 기본 프로세스는 다른 사용자의 요청을 기다립니다. 두 번째 사용자 요청이 오면 두 번째 사용자 요청에 응답하기 위해 하위 프로세스가 생성됩니다. 등. 따라서 모든 사용자 요청은 하위 프로세스에 의해 처리됩니다.

CDN 컴퓨터실: CDN 컴퓨터실은 정적 리소스를 저장하는 데 사용됩니다.

사용자가 데이터를 요청하면 웹 서버에 요청을 보낸 다음 클라이언트에 응답하고, 그러면 수억 개의 데이터가 전 세계 사람들이 백엔드 서버를 요청하면 백엔드 서버가 이를 처리할 수 없고 액세스 속도도 매우 느려지게 됩니다. 이것이 CDN과 같은 것의 탄생입니다. 클라이언트가 페이지를 방문하면 먼저 CDN 컴퓨터실을 방문하게 되며, CDN 컴퓨터실에 캐시가 없으면 원본으로 다시 캐시됩니다. 다음에 방문할 때 원본으로 돌아갈 필요가 없으므로 CDN에 직접 액세스할 수 있으므로 백엔드 서버에 대한 부담이 줄어듭니다.

관련 기사 튜토리얼: 웹 보안 튜토리얼

위 내용은 HTTP 프로토콜에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제