HTTP
HTTP 요청
수색…
매개 변수
HTTP 메소드 | 목적 |
---|---|
OPTIONS | 지정된 요청 URI에서 사용 가능한 통신 옵션 (사용 가능한 메소드 및 헤더)에 대한 정보를 검색하십시오. |
GET | 요청 URI로 식별 된 데이터 또는 요청 URI에서 사용할 수있는 스크립트에 의해 생성 된 데이터를 검색하십시오. |
HEAD | 메시지 본문이 서버에서 반환되지 않는다는 점을 제외하고는 GET 동일합니다. 헤더 만 있습니다. |
POST | 요청 URI에 지정된 자원에 추가하기 위해 데이터 본문 (메시지 본문에 지정된)을 서버에 제출하십시오. 양식 처리에 가장 일반적으로 사용됩니다. |
PUT | 동봉 된 정보를 메시지 본문에 새 요청 또는 업데이트 된 리소스로 지정된 요청 URI로 저장합니다. |
DELETE | 요청 URI로 식별 된 자원을 삭제하거나 삭제 대기열에 넣습니다. |
TRACE | 본질적으로 반향 명령 : 작동하는 호환 HTTP 서버는 전체 요청을 200 (OK) 응답 본문으로 다시 보내야합니다. |
비고
Telnet을 사용하여 수동으로 최소 HTTP 요청 보내기
이 예제는 HTTP가 텍스트 기반 인터넷 통신 프로토콜임을 보여 주며 기본 HTTP 요청과 해당 HTTP 응답을 보여줍니다.
Telnet 을 사용하여 다음과 같이 수동으로 최소한의 HTTP 요청을 명령 줄에서 보낼 수 있습니다.
포트 80에서 웹 서버
www.example.org
에 대한 텔넷 세션을 시작합니다.telnet www.example.org 80
텔넷은 서버에 연결되었다고보고합니다.
Connected to www.example.org. Escape character is '^]'.
GET 요청의 URL 경로를 보내도록 요청 라인 입력
/
HTTP 1.1을 사용하여,GET / HTTP/1.1
HTTP 헤더 필드 행을 입력하여 HTTP 1.1에 필요한 필수 URL의 호스트 이름 부분을 식별합니다.
Host: www.example.org
빈 줄을 입력하여 요청을 완료하십시오.
웹 서버는 텔넷 세션에 나타나는 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-Agent
및 Referer
헤더 요청은 다음과 같습니다.
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
로 형성되어야합니다. Name
은 User-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.
HEAD
및 TRACE
요청에는 메시지 본문이 포함되어서는 안됩니다.