2013-09-24 1 views
0

Я хочу отобразить веб-страницу с использованием типа содержимого Многостраничный, но в моих журналах сниффера всегда отображаются несколько запросов GET для изображений на веб-странице.Как указать многостраничный HTML-код, так что его загружают с помощью 1 запроса GET

Вот мой тестовый код:

<!DOCTYPE html> 
<html> 
<head> 
    <title>multipart/form-data</title> 
    <header><h2>Testing multipart/form-data</h2></header> 
    <META HTTP-EQUIV="Content-Type" CONTENT="multipart/related; charset=ISO-8859-1"/> 
</head> 
<body> 
    Text outside the &lt;form&gt; tag. 
    <form 
     enctype="multipart/form-data" 
     method="POST" 
     action="/php/showPostGet.php" > <!-- The enctype attribute can only be used if method="post". --> 

     Text inside the &lt;form&gt; tag.<br /> 
     <input type="submit" value='TEST'/><br> 
     <form enctype="multipart/text/plain"> 
      Name1: <input type="text" name="fname" value="ABC"><br> 
      Name2: <input type="text" name="lname" value="123"><br> 
     </form> 
     <br /> 
     <img src="/images/arrow_left.jpg" alt="left"> 
     <img src="/images/arrow_right.jpg" alt="right"> 
     <img src="/images/arrow_up.jpg" alt="up"> 
     <img src="/images/arrow_down.jpg" alt="down"> 
     <br/> 
    </form> 
</body> 
<br/> 
</html> 

Когда я делаю Refresh на этой веб-странице, я ожидал увидеть один запрос GET, но я вижу несколько запросов GET (один для главной страницы и один для файла изображения ea). так:

7 10.738337 163.64.287.173   10.235.5.146   HTTP  GET /mdg/HTML/FileUpload/Andy/multipart-form-data.html HTTP/1.1 

9 10.739553 10.235.5.146   163.64.287.173   HTTP  HTTP/1.1 200 OK (text/html) 

Content-Type: text/html; charset=ISO-8859-1\r\n 

<META HTTP-EQUIV="Content-Type" CONTENT="multipart/form-data; charset=ISO-8859-1"/> 

17 12.945487 163.64.287.173   10.225.57.136   HTTP  GET /images/arrow_left.jpg HTTP/1.1 

19 12.946704 10.225.57.136   163.64.287.173   HTTP  HTTP/1.1 200 OK (JPEG JFIF image) 

Content-Type: image/jpeg\r\n 

28 14.816313 163.64.287.173   10.225.57.136   HTTP  GET /images/arrow_right.jpg HTTP/1.1 

30 14.817529 10.225.57.136   163.64.287.173   HTTP  HTTP/1.1 200 OK (JPEG JFIF image) 

Content-Type: image/jpeg\r\n 

41 17.196125 163.64.287.173   10.225.57.136   HTTP  GET /images/arrow_up.jpg HTTP/1.1 

43 17.197342 10.235.5.146   163.64.287.173   HTTP  HTTP/1.1 200 OK (JPEG JFIF image) 

Content-Type: image/jpeg\r\n 

51 19.060141 163.64.287.173   10.225.57.136   HTTP  GET /images/arrow_down.jpg HTTP/1.1 

53 19.061358 10.225.57.136   163.64.287.173   HTTP  HTTP/1.1 200 OK (JPEG JFIF image) 

Content-Type: image/jpeg\r\n 

Я ожидал увидеть 1 запрос GET, затем несколько OK/ПРОДОЛЖЕНИЕ сообщений (с данными 'граничных ='). Нечто подобное (с другого веб-сайта):

901 15:36:40.100491 10.277.7.10 72.253.197.19 HTTP GET /app/WT/default.aspx?vtbl=1&debugds=320&vzmw3=vzmw3 HTTP/1.1

903 15:36:40.317813 72.253.197.19   10.277.7.10   HTTP  HTTP/1.1 200 OK 

Content-Type: multipart/mixed; boundary=next.part.8412f441-e4ea-4554-8400-9a003df2f78f\r\n 

Content-Type: multipart/mixed; boundary=next.part.8412f441-e4ea-4554-8400-9a003df2f78f\r\n 

MIME Multipart Media Encapsulation, Type: multipart/mixed, Boundary: "next.part.8412f441-e4ea-4554-8400-9a003df2f78f" 

First boundary: --next.part.8412f441-e4ea-4554-8400-9a003df2f78f\r\n 

Content-Type: text/html; charset=utf-8\r\n 

905 15:36:40.319315 63.64.187.229   97.253.137.46   HTTP  HTTP/1.1 200 OK 

Content-Type: multipart/mixed; boundary=next.part.8412f441-e4ea-4554-8400-9a003df2f78f\r\n 

Content-Type: multipart/mixed; boundary=next.part.8412f441-e4ea-4554-8400-9a003df2f78f\r\n 

906 15:36:40.320116 72.253.197.19   10.247.7.10   HTTP  Continuation 
+0

Как вы ожидаете, что он загрузит изображения без отправки запросов GET для них? – Barmar

+0

Многостраничные типы MIME имеют смысл только для электронной почты, а не для веб-страниц. – Barmar

+0

Это только проверка того, является ли multipart причиной 1 запроса GET или нескольких запросов GET, когда страница загружается/обновляется. Все настольные браузеры игнорируют multipart и отправляют несколько запросов GET при загрузке страницы. Тем не менее, у меня есть старый флеш-телефон Brew, и этот телефон поддерживает multipart/form-data, поэтому я ожидал бы 1 GET-запросы с 1 или более ответами от сервера (200). –

ответ

0

You won't be able to do this in HTML. Content-Type: multipart/... является заголовок HTTP, в то время как HTML тег <meta http-equiv="content-type"> поддерживает очень ограниченные значения, как определено здесь: http://www.w3.org/TR/html-markup/meta.http-equiv.content-type.html#meta.http-equiv.content-type

специально отформатированные строки обеспечивая имя кодировки символов , Значение: следующие части, в точности следующем порядке:

  1. Символьная строка «text/html;».
  2. Возможно, один или несколько символов пробела.
  3. Литеральная строка "charset=".
  4. Один из следующих действий:
    • Для документов в синтаксисе HTML: Имя кодировки символов.
    • Для документов в синтаксисе XML: любое нечувствительное к регистру совпадение для строки «UTF-8».

Другими словами, так как это HTML документ, единственное допустимое содержание-тип "текст/html".

Вы хотите указать «multipart/mixed» в заголовках HTTP на стороне сервера (например, с использованием PHP-заголовка() или аналогичного). Но даже тогда, похоже, что единственными браузерами, которые его поддерживают, являются Firefox/Netscape; см. How to download multiple files with one HTTP request?

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

  • Нет связанных вопросов^_^