수색…


매개 변수

HTTP 메소드 목적
OPTIONS 지정된 요청 URI에서 사용 가능한 통신 옵션 (사용 가능한 메소드 및 헤더)에 대한 정보를 검색하십시오.
GET 요청 URI로 식별 된 데이터 또는 요청 URI에서 사용할 수있는 스크립트에 의해 생성 된 데이터를 검색하십시오.
HEAD 메시지 본문이 서버에서 반환되지 않는다는 점을 제외하고는 GET 동일합니다. 헤더 만 있습니다.
POST 요청 URI에 지정된 자원에 추가하기 위해 데이터 본문 (메시지 본문에 지정된)을 서버에 제출하십시오. 양식 처리에 가장 일반적으로 사용됩니다.
PUT 동봉 된 정보를 메시지 본문에 새 요청 또는 업데이트 된 리소스로 지정된 요청 URI로 저장합니다.
DELETE 요청 URI로 식별 된 자원을 삭제하거나 삭제 대기열에 넣습니다.
TRACE 본질적으로 반향 명령 : 작동하는 호환 HTTP 서버는 전체 요청을 200 (OK) 응답 본문으로 다시 보내야합니다.

비고

CONNECT 메소드는 프록시 정의 와 터널링 모드 (예 : SSL 터널링) 사이를 전환 할 수있는 프록시에서 사용하기 위해 메소드 정의 스펙의해 예약됩니다 .

Telnet을 사용하여 수동으로 최소 HTTP 요청 보내기

이 예제는 HTTP가 텍스트 기반 인터넷 통신 프로토콜임을 보여 주며 기본 HTTP 요청과 해당 HTTP 응답을 보여줍니다.

Telnet 을 사용하여 다음과 같이 수동으로 최소한의 HTTP 요청을 명령 줄에서 보낼 수 있습니다.

  1. 포트 80에서 웹 서버 www.example.org 에 대한 텔넷 세션을 시작합니다.

    telnet www.example.org 80
    

    텔넷은 서버에 연결되었다고보고합니다.

    Connected to www.example.org.
    Escape character is '^]'.
    
  1. GET 요청의 URL 경로를 보내도록 요청 라인 입력 / HTTP 1.1을 사용하여,

    GET / HTTP/1.1
    
  2. HTTP 헤더 필드 행을 입력하여 HTTP 1.1에 필요한 필수 URL의 호스트 이름 부분을 식별합니다.

    Host: www.example.org
    
  3. 빈 줄을 입력하여 요청을 완료하십시오.

    웹 서버는 텔넷 세션에 나타나는 HTTP 응답을 보냅니다.

전체 세션은 다음과 같습니다. 응답의 첫 번째 행은 요청이 성공적으로 처리되었음을 나타내는 상태 코드 200 및 상태 텍스트 OK 를 포함하는 HTTP 상태 행 입니다. 그 다음에 여러 HTTP 헤더 필드, 빈 행 및 HTML 응답이옵니다.

$ telnet www.example.org 80
Trying 2606:2800:220:1:248:1893:25c8:1946...
Connected to www.example.org.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.example.org

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Thu, 21 Jul 2016 15:56:05 GMT
Etag: "359670651"
Expires: Thu, 28 Jul 2016 15:56:05 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (lga/1318)
Vary: Accept-Encoding
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is established to be used for illustrative examples in documents. You may use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

(HTML 응답에서 style 요소와 빈 줄이 제거되었습니다.)

기본 요청 형식

HTTP 1.1에서 최소 HTTP 요청은 요청 행과 Host 헤더로 구성됩니다.

GET /search HTTP/1.1 \r\n
Host: google.com \r\n
\r\n

첫 번째 줄은 다음과 같은 형식입니다.

Method Request-URI HTTP-Version CRLF

Method 는 유효한 HTTP Method 여야합니다. [1] [2] 중 하나 :

  • OPTIONS
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • PATCH
  • TRACE
  • CONNECT

Request-URI 는 URI 또는 ​​클라이언트가 요청하는 리소스에 대한 경로를 나타냅니다. 다음 중 하나 일 수 있습니다.

  • scheme, host, (optional) port와 path를 포함하는 완전한 URI; 또는
  • Host 헤더에 Host 지정해야하는 경로

HTTP-Version 은 클라이언트가 사용하는 HTTP 프로토콜의 HTTP-Version 나타냅니다. HTTP 1.1 요청의 경우 항상 HTTP/1.1 이어야합니다.

요청 행은 대개 \r\n 으로 표시되는 캐리지 리턴 행 공급 쌍으로 끝납니다.

요청 헤더 필드

HTTP 요청에 헤더 필드 (일반적으로 '헤더'라고 함)를 추가하여 요청에 대한 추가 정보를 제공 할 수 있습니다. 헤더는 그러한 것들을 지원하는 프로그래밍 언어로 메소드에 전달 된 매개 변수와 유사한 의미를가집니다.

Host , User-AgentReferer 헤더 요청은 다음과 같습니다.

GET /search HTTP/1.1 \r\n
Host: google.com \r\n
User-Agent: Chrome/54.0.2803.1 \r\n
Referer: http://google.com/ \r\n
\r\n

지원되는 HTTP 1.1 요청 헤더의 전체 목록은 사양 에서 찾을 수 있습니다. 가장 일반적입니다 :

  • Host - 요청 URL의 호스트 이름 부분 (HTTP / 1.1에서 필요함)
  • User-Agent - 요청하는 사용자 에이전트를 나타내는 문자열.
  • Referer - 클라이언트가 여기에서 참조 된 URI. 과
  • If-Modified-Since - 서버가 자원이 변경되었는지를 판별하고 클라이언트가 캐시 된 사본을 사용할 수 없다는 것을 나타내는 데 사용할 수있는 날짜를 제공합니다.

헤더는 Name: Value CRLF 로 형성되어야합니다. NameUser-Agent 와 같은 헤더 이름입니다. Value 은 할당 된 데이터이며 행은 CRLF로 끝나야합니다. 헤더 이름은 대소 문자를 구별하며 문자, 숫자 및 문자 !#$%&'*+-.^_`|~ _` !#$%&'*+-.^_`|~ (RFC 7230 섹션 3.2.6 필드 값 구성 요소 ) 만 사용할 수 있습니다.

Referer 헤더 필드 이름은 RFC1945에 우연히 도입 된 'referrer'의 오타입니다.

메시지 본문

일부 HTTP 요청에는 메시지 본문이 포함될 수 있습니다. 이것은 서버가 요청을 처리하는 데 사용할 추가 데이터입니다. 메시지 본문은 서버가 자원에 적용해야하는 새 데이터를 제공하기 위해 POST 또는 PATCH 및 PUT 요청에서 가장 자주 사용됩니다.

메시지 본문이 포함 된 요청의 길이는 항상 Content-Length 헤더가있는 바이트로 포함되어야합니다.

메시지 본문은 모든 헤더와 이중 CRLF 뒤에 포함됩니다. 본문이있는 예제 PUT 요청은 다음과 같습니다.

PUT /files/129742 HTTP/1.1\r\n
Host: example.com\r\n
User-Agent: Chrome/54.0.2803.1\r\n
Content-Length: 202\r\n
\r\n
This is a message body. All content in this message body should be stored under the 
/files/129742 path, as specified by the PUT specification. The message body does
not have to be terminated with CRLF.

HEADTRACE 요청에는 메시지 본문이 포함되어서는 안됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow