목차
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 서버로 반환됩니다.