단 하나의 기사로 HTTP 프로토콜이 무엇인지 이해하시겠습니까? 원칙?

 

목차

         1. http 프로토콜이란 무엇입니까?

2.http 프로토콜 버전?

3.http 텍스트 프레임

4.http 요청 메시지

5.http 메시지 형식

6.http 응답 메시지

7.HTTP 상태 코드

8. HTTP 헤더 소개

9. URL과 URI란 무엇입니까?

10.CGI란 무엇인가요?


1. http 프로토콜이란 무엇입니까?

http: 하이퍼 텍스트 전송 프로토콜 하이퍼 텍스트 전송 프로토콜은 인터넷에서 가장 널리 사용되는 네트워크 프로토콜이며 주로 웹 서비스에 사용됩니다. HTML(Hyper Text Mark Language) 형식의 텍스트 정보를 컴퓨터로 처리하여 구현됩니다.

2.http 프로토콜 버전?

http 0.9: HTML 문서만 사용자에게 전송

http 1.0 :

1. MIME(다목적 인터넷 메일 확장) 메커니즘 도입: 다목적 인터넷 메일 확장 이 기술이 도입된 후 http는 멀티미디어(예: 비디오, 오디오 등) 정보를 보낼 수 있습니다. 이 메커니즘을 통해 http는 더 이상 html 형식을 지원할 뿐만 아니라 다른 전송 형식도 지원할 수 있습니다.

2. 지속적인 연결 기능을 지원하기 위해 연결 유지 메커니즘을 도입했습니다. (그러나 이 연결 유지 원칙은 헤더에 특정 필드를 추가하여 구성되며 기본적으로 이 기능을 지원하지 않습니다.)

3. 캐싱 기능 지원 소개 http 1.1에서는 더 많은 요청 방법과 더 세련된 캐시 제어를 지원하며 기본적으로 영구 연결 기능(영구)을 지원합니다.

http 2.0 :

HTTP 의미론적 최적화 전송인 spdy를 제공합니다. Google에서 도입한 기술로, 특히 SSL 가속 메커니즘을 사용하여 http 데이터 상호 작용을 가속화할 수 있지만 spdy는 현재 많이 사용되지 않습니다.

현재 일반적으로 사용되는 버전은 http 1.0 버전과 http 1.1 버전입니다.

3.http 텍스트 프레임

<html>
    <head>
        <title></title>
    </head>
    <body>
        <h1>hello</h1>
    </body>
</html>

4.http 요청 메시지

1.요청 메시지(요청 메시지) 클라이언트 -> 서버

클라이언트는 서버에 요청을 하고, 다른 웹사이트는 다른 리소스(html 문서)를 요청하는 데 사용됩니다.

2.response Message(응답 메시지) 서버-→클라이언트

서버는 클라이언트의 요청에 응답합니다.

5.http 메시지 형식

요청 라인 + 요청 헤더 + 빈 라인 + 요청 엔터티

 

1. 요청 라인

요청 라인은 주로 요청 방법 + URL 필드 + HTTP 프로토콜 버전의 세 부분으로 구성됩니다.

 

구성:

<method>: 이 요청의 방법

<request-URL>: 요청된 리소스의 경로

<version>: 요청된 프로토콜 버전

http 요청 방법: ​

HTTP 요청 방법 설명하다
얻다 클라이언트가 지정된 리소스 정보를 요청하고 지정된 리소스의 엔터티를 반환하는 데 사용됩니다.
머리 GET과 유사하지만 클라이언트가 요청한 리소스를 반환할 필요가 없으며 응답 헤더만 반환됩니다(클라이언트에게 리소스가 있는지 여부를 알려줌).
우편 일반적으로 mysql 스토리지와 같이 데이터를 저장해야 하는 경우 HTML 양식을 기반으로 서버에 데이터를 제출합니다.
놓다 GET과 달리 리소스가 서버로 전송되고 서버는 Baidu Netdisk 및 Alibaba Cloud Disk와 같은 이 데이터를 저장합니다.
삭제 URL에 지정된 리소스를 삭제하도록 서버에 요청
이동하다 지정된 페이지를 다른 네트워크 위치로 이동하도록 서버에 요청합니다.
옵션 요청된 URL에 대해 서버가 지원하는 요청 방법을 감지합니다.
추적하다 첫 번째 요청이 통과한 프록시 서버, 방화벽 또는 게이트웨이

2. 요청 헤더

요청 헤더는 키워드 + 키워드 값으로 구성되며, 형식: 이름:값으로 직접 구분됩니다. 요청 헤더의 기능은 클라이언트를 통해 요청 관련 내용을 서버에 알리는 것입니다. 헤더는 두 개 이상입니다.

 

3. 빈 줄

요청 헤더 뒤에는 빈 줄이 있으며, 이는 캐리지 리턴 및 줄 바꿈 문자를 사용하여 요청 헤더 정보가 다음 콘텐츠에 더 이상 표시되지 않음을 서버에 알립니다.

4. 요청 엔터티

실제로 요청한 콘텐츠

 

6.http 응답 메시지

형식: 시작 줄 + 응답 헤더 + 빈 줄 + 응답 엔터티

 

1.출발선

상태 줄이라고도 하며 클라이언트 요청에 대한 서버의 상태 정보에 사용되며 버전 번호 <version> + 상태 코드 <status> + 이유 문구 <reason-phrase>로 구성됩니다.

<Version> : 클라이언트의 요청에 대해 서버가 응답하는 버전 
<status> : 상태 코드, 200, 404 등 
<reason-phrase> : 응답 상태 코드 정보가 깊음, 이유 문구 
<headers> : A 많은 응답 헤더 
<entity-body>: 응답 본문
2. 응답 헤더

요청 메시지와 마찬가지로 일반적으로 시작 줄 뒤에 여러 헤더 필드가 있습니다. 각 헤더 필드에는 이름과 값이 포함됩니다. 형식: 이름:값

콘텐츠 유형: 테스트/html; charset=utf-8 
콘텐츠 길이: 78
3. 빈 줄

마지막 응답 헤더 정보 뒤에 빈 줄이 있어 클라이언트에게 헤더 정보가 없음을 알립니다.

4. 응답 본문

응답 엔터티에는 클라이언트에 반환할 데이터가 로드되며, 데이터는 텍스트 또는 바이너리일 수 있습니다.

7.HTTP 상태 코드

상태 코드 설명하다
1XX 클라이언트에 해당하는 특정 작업을 지정하는 데 사용되는 정보 상태 코드
2XX 성공 상태 코드, 리소스를 요청했는데 리소스가 있다는 것은 요청이 성공했음을 의미합니다.
3XX 리디렉션 상태 코드(때때로 새 주소를 반환함)
4XX 클라이언트측 오류입니다. 요청한 리소스가 존재하지 않거나, 요청했을 때 리소스에서 액세스를 거부했으며 권한이 없습니다.
5XX 서버 오류 메시지. 서버에 대한 요청을 시작하면 서버는 구문 분석 라이브러리를 호출하기 위해 스크립트를 실행해야 함을 발견합니다. 이는 호출 중에 오류가 발생하거나 스크립트에 오류가 있는 경우 발생하며 이로 인해 이 문제가 발생할 수도 있습니다.
일반적인 상태 코드
상태 코드 설명하다
200 서버가 웹페이지를 성공적으로 반환했습니다. 이는 성공적인 HTTP 요청에 의해 반환된 표준 상태 코드입니다.
201 업로드된 파일이 성공적으로 완료되면 Created가 표시됩니다.
301 영구 리디렉션인 영구 이동은 새 주소를 반환하고 요청한 주소가 영구적으로 이동할 새 주소를 알려줍니다.
302 fonud, 임시 리디렉션, 일시적으로 어딘가에 배치됨, 응답 메시지에 "location: new location"을 사용합니다.
304 수정되지 않음 리소스가 어떤 방식으로든 수정되지 않았습니다.
403 거부 요청 금지
404 찾을 수 없습니다. 요청한 리소스가 존재하지 않습니다.
405 허용되지 않는 방법 사용 중인 방법이 허용되지 않거나 지원되지 않습니다.
500 내부 서버 오류: 서버 내부 오류
502 Bod 게이트웨이, 프록시 서버는 업스트림 서버로부터 의사 응답을 수신하고 상위 레이어 서버는 이해할 수 없는 메시지를 반환하므로 프록시 서버는 오류를 표시합니다.
503 서비스를 사용할 수 없습니다. 서비스를 일시적으로 사용할 수 없습니다.

8. HTTP 헤더 소개

헤더의 분류: 일반 헤더, 요청 헤더, 응답 헤더, 엔터티 헤더 (특히 엔터티 내 자원의 내부 유형, 길이, 인코딩 형식 등을 나타내는 데 사용됨), 확장 헤더 (비표준 헤더, 다음에서 생성할 수 있음) 프로그래머)

1. 일반 헤더

• Connection: C/S간의 요청과 응답에 관한 옵션을 정의하며, http1.0에서는 지속적인 연결을 사용하고자 할 경우 Connection: keep-alive,

• Cache-Control: 보다 정교한 캐시 제어를 달성하기 위한 캐시 제어입니다. http 1.1에서 더 일반적임

2. 요청 헤더

• 클라이언트-IP: 클라이언트 IP 주소

• 호스트: 요청된 호스트. 호스트 이름 기반 가상 호스팅을 구현할 때 유용합니다.

• Referer: 현재 리소스에 대해 요청된 원본 리소스의 URL을 나타내며, Referer를 사용하면 핫링크를 방지할 수 있다.

• User-Agent: 사용자 에이전트, 일반적으로 브라우저

• 수락 헤더: 클라이언트가 수락할 수 있는 인코딩 유형을 나타냅니다.

▪ 수락: 서버가 보낼 수 있는 미디어 유형

▪ Accetp-Charset: 수신된 문자 집합

▪ Accept-Encoding: 인코딩 형식

▪ Accept-Lanage: 허용되는 언어 인코딩 형식

• 조건부 요청 헤더: (http1.1에서만 사용됨)

요청을 보낼 때 먼저 상대방에게 조건이 맞는지 물어보세요. 조건이 맞으면 요청을 하고, 조건이 맞으면 요청을 하지 않습니다.

• 보안 관련 요청:

▪ 승인

▪ 쿠키

3. 응답 헤더

• 연령: 리소스가 사용자에게 응답한 후 사용할 수 있는 기간

• 서버: 클라이언트에게 사용된 프로그램 이름과 버전을 알려준다.

• 협상 클래스 헤더:

▪ Vary: 헤더 목록 서버는 이 목록을 기반으로 가장 적합한 버전을 선택하여 클라이언트에 보냅니다.

• 보안 관련:

▪ WWW-인증

▪ 세트 쿠키

4. 엔터티 헤더

• 위치: 리소스의 새로운 위치를 나타내며 일반적으로 302 응답 코드를 구현할 때 사용됩니다.

• 허용: 이 리소스에 허용된 요청 방법

• 콘텐츠 관련 헤더

▪ 콘텐츠 인코딩

▪ 내용 언어

▪ 콘텐츠 길이

▪ Content-Location: 콘텐츠가 위치한 곳

▪ 콘텐츠 유형

• 캐시 관련:

▪ ETag: 확장 태그/태그

▪ 만료: 만료 시간

▪ Last-Modified: 마지막으로 수정된 시간

9. URL과 URI란 무엇입니까?

• URI(Uniform Resource Identifier) ​​​​동일한 리소스 식별자

인터넷 리소스의 이름을 식별하는 데 사용되는 문자열입니다. 이 식별을 통해 사용자는 특정 프로토콜을 통해 리소스와 상호 작용할 수 있습니다. HTML 문서, 이미지, 비디오 클립, 프로그램 등을 포함하여 웹에서 사용할 수 있는 모든 리소스는 범용 리소스 식별자로 위치합니다. 따라서 URI를 사용하여 각 리소스의 이름을 식별할 수 있습니다.

• URL(Uniform Resource Locator)(Uniform Resource Locator)

특정 서버에 있는 리소스의 특정 위치를 설명하는 데 사용됩니다.

예: http://www.baidu.com:80/download/bash-4.3.1-1.rpm

URL의 형식은 세 부분으로 나뉩니다.

i. 구성표(프로토콜이라고도 함): http://

ii. 인터넷 주소: 일반적으로 이 주소는 서버를 나타냅니다: www.baidu.com:8080

iii.특정 서버의 리소스: download/bash-4.3.1-1.rpm

10.CGI란 무엇인가요?

공통 게이트웨이 인터페이스 공통 게이트웨이 인터페이스

 

웹 서버는 스크립트를 실행해야 한다고 판단하면 CGI 프로토콜을 통해 백엔드 애플리케이션과 상호 작용하여 사용자의 요청을 서버에 동적으로 전달하고, 서버의 결과는 CGI 프로토콜을 통해 http 서버로 반환됩니다.

추천

출처blog.csdn.net/weixin_53678904/article/details/132286532