Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

HTTP 소개:알아야 할 모든 것

이 기사에서는 월드 와이드 웹이 기본적인 수준에서 어떻게 작동하는지 안내해 드리겠습니다.

핵심 기술은 HTTP - 하이퍼텍스트 전송 프로토콜입니다. 웹을 검색할 때 사용하는 통신 프로토콜입니다.

기본적인 수준에서 웹사이트를 방문할 때 브라우저는 서버에 HTTP 요청을 합니다. 그런 다음 해당 서버는 리소스(웹 페이지의 이미지, 비디오 또는 HTML)로 응답합니다. 그러면 브라우저가 이를 표시합니다.

이것은 HTTP의 메시지 기반 모델입니다. 모든 HTTP 상호 작용에는 요청과 응답이 포함됩니다.

본질적으로 HTTP는 상태 비저장입니다.

상태 비저장 모든 요청이 서로 분리되어 있음을 의미합니다. 따라서 브라우저의 각 요청에는 서버가 요청을 이행할 수 있는 충분한 정보가 자체적으로 포함되어야 합니다. 이것은 또한 HTTP의 메시지 기반 모델의 각 트랜잭션이 다른 트랜잭션과 별도로 처리된다는 것을 의미합니다.

URL

URL(Uniform Resource Locator)은 아마도 웹에서 가장 잘 알려진 개념일 것입니다. 또한 가장 중요하고 유용한 개념 중 하나입니다. URL은 웹에서 리소스를 식별하는 데 사용되는 웹 주소입니다.

웹의 개념은 리소스를 중심으로 구성됩니다. 웹은 처음부터 텍스트/HTML 파일, 문서, 이미지 등을 공유하기 위한 플랫폼이었고 리소스 모음으로 간주될 수 있습니다.

HTTP 소개:알아야 할 모든 것
URL의 예

프로토콜  — 대부분 HTTP(또는 HTTP 보안 버전의 경우 HTTPS)입니다.

기타 주목할만한 프로토콜은 다음과 같습니다.

  • FTP(파일 전송 프로토콜) — 네트워크를 통해 클라이언트와 서버 간에 파일을 전송하는 데 사용되는 표준 프로토콜입니다.
  • SMTP(Simple Mail Transfer Protocol)는 이메일 전송의 표준입니다.

도메인  — 리소스가 있는 하나 이상의 IP 주소를 식별하는 데 사용되는 이름입니다.

경로 - 서버의 리소스 위치를 지정합니다. 이 기사를 읽고 있는 기기에서 사용된 리소스 위치와 동일한 논리를 사용합니다(예:/search/cars/VWBeetle.pdf 또는 C:/my cars/VWBeetle.pdf).

매개변수  — 서버의 리소스를 식별하거나 필터링하는 데 사용되는 추가 데이터입니다.

참고 :HTTP에 대한 기사 및 추가 정보를 검색할 때 URI(또는 균일 자원 식별자)라는 용어를 접할 수 있습니다. URI가 URL 대신 사용되는 경우도 있지만 대부분 형식적인 사양으로 과시하려는 사람들이 사용합니다. :)

HTTP 요청

HTTP에서 모든 요청에는 URL 주소가 있어야 합니다. 또한 요청에는 메서드가 필요합니다. 네 가지 주요 HTTP 메서드는 다음과 같습니다.

  • 얻기
  • 넣기
  • 게시
  • 삭제

이 문서의 HTTP 방법 섹션에서 이러한 방법에 대해 설명하겠습니다.

그리고 이러한 메서드는 작업에 직접적으로 대응합니다.

  • 읽기
  • 업데이트
  • 만들기
  • 삭제

모든 HTTP 메시지에는 하나 이상의 헤더와 선택적 메시지 본문이 있습니다. 본문에는 요청과 함께 보낼 데이터 또는 응답과 함께 받은 데이터가 포함됩니다.

모든 HTTP 요청의 첫 번째 부분에는 세 가지 항목이 있습니다.

예:

  • GET /adds/search-result?item=vw+beetle HTTP/1.1

URL에 "?"가 포함된 경우 기호는 쿼리가 포함되어 있음을 의미합니다. 즉, 요청된 리소스의 매개변수를 보냅니다.

  1. 첫 번째 부분은 어떤 HTTP 메소드가 사용되는지 알려주는 메소드입니다. 가장 일반적으로 사용되는 방법은 GET 방법입니다. GET 메소드는 웹 서버에서 리소스를 검색하며 GET에는 헤더가 필요한 후 메시지 본문이 없기 때문에 아무 것도 필요하지 않습니다.
  2. 두 번째 부분은 요청된 URL입니다.
  3. 세 번째 부분은 사용 중인 HTTP 버전입니다. 버전 1.1. 대부분의 브라우저에서 가장 일반적인 버전이지만 버전 2.0이 대신합니다.

HTTP 요청에는 다음과 같은 몇 가지 흥미로운 사항도 있습니다.

참조 헤더 — 요청이 시작된 URL을 알려줍니다.

사용자 에이전트 헤더 — 요청을 생성하는 데 사용되는 브라우저에 대한 추가 정보입니다.

호스트 헤더  — 호스트 이름을 고유하게 식별합니다. 동일한 서버에서 여러 웹 페이지를 호스팅할 때 필요합니다.

쿠키 헤더 — 추가 매개변수를 클라이언트에 제출합니다.

HTTP 응답

HTTP 요청과 마찬가지로 HTTP 응답도 세 가지 항목으로 구성됩니다.

예:

HTTP/1.1 200 OK

  1. 첫 번째 부분은 사용 중인 HTTP 버전입니다.
  2. 두 번째 부분은 요청 결과의 숫자 코드입니다.
  3. 세 번째 부분은 두 번째 부분에 대한 텍스트 설명입니다.

HTTP 응답에는 몇 가지 다른 흥미로운 사항이 있습니다.

서버 헤더 — 사용 중인 웹 서버 소프트웨어에 대한 정보

쿠키 헤더 설정 — 브라우저에 쿠키를 발행합니다.

메시지 본문 — HTTP 응답이 메시지 본문을 보유하는 것이 일반적입니다.

콘텐츠 길이 헤더 — 메시지 본문의 크기를 바이트 단위로 알려줍니다.

HTTP 메소드

가장 일반적인 방법은 GET 및 POST입니다. 하지만 몇 가지 다른 것들도 있습니다.

GET  —  이 방법을 사용하여 데이터가 어떤 식으로든 수정되지 않은 지정된 리소스에서 데이터를 요청합니다. GET 요청은 리소스 상태를 변경하지 않습니다.

게시 — 이 방법을 사용하여 리소스를 생성하기 위해 서버에 데이터를 보냅니다.

PUT — 이 방법을 사용하여 요청 본문의 콘텐츠를 사용하여 서버의 기존 리소스를 업데이트합니다. 이것을 "편집"하는 방법으로 생각하십시오.

헤드  —  이 메서드는 GET을 사용하는 것과 같은 방식으로 사용하지만 HEAD 메서드의 반환에는 응답에 본문이 포함되어서는 안 된다는 차이점이 있습니다. 그러나 반환에는 GET이 사용된 것과 동일한 헤더가 포함됩니다. HEAD 메서드를 사용하여 GET 요청을 하기 전에 리소스가 있는지 확인합니다.

TRACE —  진단 목적으로 이 방법을 사용합니다. 응답의 본문에는 요청 메시지의 정확한 내용이 포함됩니다.

옵션 — 이 방법을 사용하여 대상 리소스에 사용할 수 있는 통신 옵션(HTTP 방법)을 설명합니다.

패치 —  이 방법을 사용하여 리소스에 부분 수정을 적용합니다.

삭제 — 이 방법을 사용하여 지정된 리소스를 삭제합니다.

휴식

REST(Representational State Transfer)는 요청 및 응답에 시스템 리소스의 현재 상태에 대한 표현이 포함되는 아키텍처 스타일입니다.

"일반" 방식:

  • https://carapp.com/search?make=wv&model=beetle

REST 스타일:

  • https://carapp.com/search/vw/beetle

궁금한 점이 있으면 여기에서 REST에 대해 자세히 알아볼 수 있습니다.

HTTP 헤더

요청/응답 구조를 구성하는 세 가지 주요 구성 요소가 있습니다. 여기에는 다음이 포함됩니다.

  • 첫 번째 줄
  • 헤더
  • 본문/콘텐츠

우리는 이미 HTTP 요청과 응답의 첫 번째 줄에 대해 이야기했고 본문 기능도 언급했습니다. 이제 HTTP 헤더에 대해 이야기하겠습니다.

HTTP 헤더는 첫 번째 줄 뒤에 추가되며 콜론으로 구분된 이름:값 쌍으로 정의됩니다. HTTP 헤더는 요청 또는 응답과 함께 추가 매개변수를 보내는 데 사용됩니다.

이미 말했듯이 메시지의 본문에는 요청과 함께 보낼 데이터 또는 응답과 함께 받은 데이터가 포함됩니다.

용도에 따라 4개의 광범위한 범주로 그룹화되는 다양한 유형의 헤더가 있습니다.

  • 일반 헤더 — 요청과 응답 메시지 모두에 사용할 수 있고 교환되는 데이터와 독립적인 헤더입니다.
  • 요청 헤더 — 이 헤더는 요청된 데이터에 대한 매개변수 또는 요청하는 클라이언트에 대한 중요한 정보를 제공하는 매개변수를 정의합니다.
  • 응답 헤더 — 이 헤더에는 수신 응답에 대한 정보가 포함되어 있습니다.
  • 엔티티 헤더 — 엔티티 헤더는 메시지 본문을 구성하는 콘텐츠를 설명합니다.
HTTP 소개:알아야 할 모든 것
헤더 유형

HTTP 상태 코드

웹을 검색할 때 "404 오류:찾을 수 없음" 페이지 또는 "500 오류:서버가 응답하지 않음" 페이지를 발견했을 수 있습니다.

HTTP 상태 코드입니다.

모든 HTTP 응답 메시지는 첫 번째 줄에 요청 결과를 알려주는 HTTP 상태 코드를 포함해야 합니다.

HTTP 소개:알아야 할 모든 것

첫 번째 숫자로 그룹화된 5개의 상태 코드 그룹이 있습니다.

  • 1xx — 정보 제공
  • 2xx — 요청이 성공했습니다.
  • 3xx — 클라이언트가 다른 리소스로 리디렉션됩니다.
  • 4xx — 요청에 일종의 오류가 있습니다.
  • 5xx — 서버에서 요청을 수행하는 동안 오류가 발생했습니다.

다음은 HTTP 상태 응답 코드의 전체 목록과 설명입니다.

HTTPS(하이퍼텍스트 전송 프로토콜 보안)

HTTP 프로토콜의 보안 버전은 HTTPS(HyperText Transfer Protocol Secure)입니다. HTTPS는 브라우저(클라이언트)와 웹사이트(서버) 간에 암호화된 통신을 제공합니다.

HTTPS에서 통신 프로토콜은 TLS(전송 계층 보안) 또는 SSL(Secure Sockets Layer)을 사용하여 암호화됩니다.

따라서 프로토콜은 종종 TLS를 통한 HTTP 또는 SSL을 통한 HTTP라고도 합니다.

TLS 및 SSL 프로토콜은 모두 비대칭 암호화 시스템을 사용합니다. 비대칭 암호화 시스템은 공개 키(암호화 키)와 개인 키(복호화 키)를 사용하여 메시지를 암호화합니다.

누구나 공개 키를 사용하여 메시지를 암호화할 수 있습니다. 그러나 개인 키는 비밀이므로 의도한 수신자만 메시지를 해독할 수 있습니다.

HTTP 소개:알아야 할 모든 것
비대칭 암호화 시스템의 예

SSL/TLS 핸드셰이크

웹 사이트에 대한 HTTPS 연결을 요청하면 웹 사이트에서 해당 SSL 인증서를 브라우저로 보냅니다. 브라우저와 웹사이트가 통신을 시작하는 프로세스를 "SSL/TLS 핸드셰이크"라고 합니다.

SSL/TLS 핸드셰이크에는 브라우저와 웹사이트가 서로를 확인하고 SSL/TLS 터널을 통해 통신을 시작하는 일련의 단계가 포함됩니다.

아마도 눈치채셨겠지만 HTTPS 연결 중에 신뢰할 수 있는 보안 터널이 사용되면 브라우저 주소 표시줄에 녹색 자물쇠 아이콘이 표시됩니다.

HTTP 소개:알아야 할 모든 것
내 보안 페이지의 예

HTTPS의 이점

HTTPS의 주요 이점은 다음과 같습니다.

  • 신용카드 번호 및 기타 민감한 정보와 같은 고객 정보는 암호화되어 가로챌 수 없습니다.
  • 방문자는 귀하가 등록된 비즈니스이고 귀하가 도메인을 소유하고 있음을 확인할 수 있습니다.
  • 고객은 HTTPS가 없는 사이트를 방문하지 않는다는 것을 알고 있으므로 HTTPS를 사용하는 사이트를 신뢰하고 구매를 완료할 가능성이 더 큽니다.

읽어 주셔서 감사합니다! 내 freeCodeCamp 프로필에서 이와 같은 더 많은 기사를 확인하십시오. 그리고 내 GitHub 페이지에서 제가 만든 다른 재미있는 것들을 확인해 보세요.