2009-04-19 4 views
24

HTTP defines eight methods (sometimes referred to as "verbs")Где найти примеры методов HTTP?

Можете ли вы помочь мне найти примеры для каждого из них, чтобы я мог лучше их протестировать и понять?

+0

Я думаю, что чтение RFC 2616 объясняет все: http://www.faqs.org/rfcs/rfc2616.html – Arjan

+0

ИМХО абсолютно правильный вопрос, количество авитаций на вопрос и принятое ответное шоу, что ясно – Tim

ответ

58

Прежде всего, вы должны заглянуть в HTTP 1.1 specification, особенно раздел method definitions.

  • ВАРИАНТЫ Получить информацию о том, как сервер позволяет общаться.

    Запрос:

    OPTIONS * HTTP/1.1 
    Host: example.com 
    

    Ответ:

    HTTP/1.1 200 OK 
    Date: … 
    Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE 
    Content-Length: 0 
    
  • GET Получить ресурс.

    Запрос:

    GET /foo/bar HTTP/1.1 
    Host: example.com 
    

    Ответ:

    HTTP/1.1 200 OK 
    Date: … 
    Content-Type: text/html;charset=utf-8 
    Content-Length: 12345 
      
    <!DOCTYPE … 
    
  • ГОЛОВА Как GET, но возвращает только заголовок HTTP.

    Запрос:

    HEAD /foo/bar HTTP/1.1 
    Host: example.com 
    

    Ответ:

    HTTP/1.1 200 OK 
    Date: … 
    Content-Type: text/html;charset=utf-8 
    Content-Length: 12345 
    
  • POST Создать новый ресурс.

    Запрос:

    POST /foo/bar HTTP/1.1 
    Host: example.com 
    Content-Type: application/x-www-form-urlencoded 
      
    action=addentry&subject=Hello,%20World 
    

    Ответ:

    HTTP/1.1 201 Created 
    Date: … 
    Content-Length: 0 
    Location: http://example.com/foo/bar   
    
  • PUT Отправка данных на сервер.

  • DELETE Удалить существующий ресурс.

  • TRACE Верните заголовки запроса, отправленные клиентом.

    Запрос:

    TRACE /foo/bar HTTP/1.1 
    Host: example.com 
    

    Ответ:

    HTTP/1.1 200 OK 
    Date: … 
    Content-Length: 17 
      
    Host: example.com 
    

Я не знаю точно, если эти примеры являются правильными. Не стесняйтесь исправить их.

+1

очень хороший ответ :) – dfa

+0

и как написать метод put –

+0

Также как проверить эти методы? напишите им, где получить ответ? –

13

Вы можете поэкспериментировать с различными методами HTTP с помощью инструмента командной строки cURL. Например:

curl --head http://www.google.co.uk 

HTTP/1.1 200 OK 
Cache-Control: private, max-age=0 
Date: Sun, 19 Apr 2009 15:33:24 GMT 
Expires: -1 
Content-Type: text/html; charset=ISO-8859-1 
Set-Cookie: PREF=ID=a2a414b9a84c8ffd:TM=1240155204:LM=1240155204:S=16kZnqzeSxIJT3jv; expires=Tue, 19-Apr-2011 15:33:24 GMT; path=/; domain=.google.co.uk 
Server: gws 
Transfer-Encoding: chunked 
  • опция -x позволяет указать метод HTTP, отличный от GET.
+2

Хороший намек, + 1. Обратите внимание, что не все браузеры поддерживают все методы. Вот почему, например, Ruby on Rails фактически использует только GET и POST, а не PUT и DELETE. Если curl не поддерживает все методы, то можно даже использовать telnet для их ручного вызова: см., Например, http://tonycode.com/wiki/index.php?title=Making_HTTP_requests_via_telnet – Arjan

+0

Согласен, я сделал это с Telnet раньше , –

Смежные вопросы