Почему curl дает другой ответ для $ _SERVER ['REQUESTI_URI'], чем браузеры?

У меня есть простая тестовая страница PHP:

<?php
  echo $_SERVER['HTTP_HOST'] . '<br/>';
  echo $_SERVER['REQUEST_URI'];
?>

Когда я открываю эту страницу в браузере (я тестировал хром и ссылки), он дает мне ожидаемый результат:

10.1.25.222
/test.php

Но когда я открываю эту страницу с помощью curl 10.1.25.222/test.php :

10.1.25.222<br/>HTTP://10.1.25.222/test.php

Мне предоставляется HTTP_HOST , я ожидаю, но не REQUEST_URI , я ожидаю

3
задан 25 July 2013 в 17:35
1 ответ

Я могу только предположить, что curl должен отправлять весь URL-адрес в своем запросе GET . Я протестировал оба приведенных ниже метода на Apache, и оба они, похоже, работают и дают результаты, аналогичные вашим:

Что, по-видимому, делает большинство браузеров в своих HTTP-запросах:

GET /some/path HTTP/1.1
Host: www.domain.com

Что делает curl:

GET HTTP://www.domain.com/some/path HTTP/1.1
Host: www.domain.com
2
ответ дан 3 December 2019 в 07:04

Теги

Похожие вопросы