Подтвердить что ты не робот

Определить, поддерживает ли сервер запрос на получение запроса

Как определить, поддерживает ли сервер возобновление передачи файла или получение запроса?

Мои мысли заключались в том, чтобы задать заголовок для запуска запроса на байте "2" вместо 0 и немедленно закрыть http-запрос, если это дало правильный результат

но мне было интересно, есть ли что-то в ответе сервера для другого типа зонда, который откроет мне эту информацию.

4b9b3361

Ответ 1

Чтобы исследовать функцию возобновления загрузки сервера, вы можете отправить запрос HEAD серверу, снабжающему заголовком Range произвольными значениями. Если код ответа 206, то возобновление поддерживается.

Пример с curl:

$ curl -i -X HEAD --header "Range: bytes=50-100" http://mirrors.melbourne.co.uk/ubuntu-releases//raring/ubuntu-13.04-desktop-amd64.iso

Update:

Вот пример в Java:

import org.apache.http.client.ResponseHandler;
import org.apache.http.client.HttpClient;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;

public class ResumeChecker {

    public final static void main(String[] args) throws Exception {

        HttpClient httpclient = new DefaultHttpClient();
        HttpHead httpRequest = new HttpHead("http://www.google.com");
        httpRequest.addHeader(new BasicHeader("Range", "bytes=10-20"));

        System.out.println("Executing request " + httpRequest.getURI());

        HttpResponse response = httpclient.execute(httpRequest);

        // Check here that response.getStatusLine() contains 206 code
    }
}

Однако я не тестировал его mysqlf.

Ответ 2

Добавление в ответ @aadel:

Большинство серверов в настоящее время отвечают заголовком Accept-Ranges: bytes, если они поддерживают возобновление. RequestMaker или Insomnia может помочь вам при рассмотрении заголовков запросов/ответов.