2011-12-28 9 views
10

Tôi đang sử dụng bên dưới dòng lệnh curl cho biết nếu trang web của tôi hỗ trợ nén và bộ nhớ đệmcurl lệnh trở lại http/1.1 406 không thể chấp nhận lỗi

curl --head --compress http://www.mysite.com

nó sẽ trả về kết quả sau

Http://1.1 406 Not Acceptable 
Date: Wed, 28 Dec 2011 07:41:32 GMT 
Server: Apache 
Content-Type: text/html; charset-iso-8859-1 

bạn nghĩ gì về vấn đề này? Cảm ơn

+0

Tại sao các bạn sử dụng 'curl' để kiểm tra xem bạn trang web hỗ trợ nén và bộ nhớ đệm. Cả hai đều là tiêu đề được gửi bởi Apache. – nand

+0

nó không hỗ trợ nén. máy chủ quản trị tuyên bố nó và tôi phải chứng minh anh ta –

+0

Tại sao không chỉ thăm dò php.ini? Có các chức năng có sẵn cho nó, như 'ini_get'. – nand

Trả lời

1

Từ tiêu chuẩn HTTP/1.1:

Tài nguyên xác định bởi yêu cầu là chỉ có khả năng tạo ra đơn vị phản ứng mà có những đặc điểm nội dung không thể chấp nhận theo tiêu đề chấp nhận gửi trong yêu cầu.

Trừ khi đó là yêu cầu HEAD, câu trả lời NÊN bao gồm một thực thể có chứa danh sách các đặc điểm và vị trí có sẵn từ đó người dùng hoặc tác nhân người dùng có thể chọn người thích hợp nhất.

Vì vậy, hãy thả đầu trang và bạn phải xem có gì sai.

406 có thể chỉ là điều chứng minh bạn đúng - máy chủ không hỗ trợ nén. :)

+0

khi tôi thả '--head' nó chỉ cho tôi những dòng sau ' 406 không thể chấp nhận

không thể chấp nhận

. . ' tôi đang sử dụng các ký tự utf-8 trong tiêu đề và thẻ h1 quá –

+0

Tôi nghĩ rằng nó sẽ hiển thị nhiều hơn sau đó chỉ là vậy. Dù sao, 406 về cơ bản có nghĩa là "bạn đã yêu cầu thứ gì đó mà tôi không thể cung cấp cho bạn". 'curl --compress' gửi' Accept-Encoding: deflate, gzip' - dường như máy chủ của bạn không thể phục vụ điều đó. Tóm lại: Phản hồi này chứng minh rằng sysadmin của bạn sai, máy chủ không hỗ trợ nén. Bạn có thể sử dụng cờ v của curl để có thêm đầu ra tiết, bao gồm các tiêu đề yêu cầu. Điều đó có thể giúp thuyết phục sysadmin của bạn. –

+0

khi tôi sử dụng phpinfo() cho trang web của mình, nó cho tôi thấy môi trường biến này 'HTTP_ACCEPT_ENCODING gzip, delate' –

26

Trong một số trường hợp tôi đã có, giả mạo đại lý giải quyết vấn đề này, bằng cách sử dụng:

curl -A "Mozilla/4.0" 

Tương tự sử dụng libcurl C-API:

curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/4.0"); 
+0

Tôi phải sử dụng chuỗi tác nhân đầy đủ" Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/41.0.2228.0 Safari/537.36 "," Mozilla/5.0 "không hoạt động. Cảm ơn! –

+1

Đại lý giả mạo hoạt động chính xác như được cung cấp, cho tôi. Cảm ơn bạn! – Animal451