html Code darstellen

  • Themenstarter Themenstarter Mark
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Mark

Gast
Hallo,

folgende Methode habe ich für einen Socket aufgerufen. Nun gibt mir diese Methode den html Code der Seite convert.htm aus. Wenn ich die beiden Zeilen die ich im Kommentar mit ??? markiert habe weglasse dann wird der html Code nichtmehr ausgegeben. Könnt ihr mir verraten warum diese beiden Zeilen nötig sind? Die Verbindung zum Server
www.test.de besteht doch eigentlich schon über den Socket für den diese Methode aufgerufen wird.

Code:
public void sendCommands() 
	{		
		try 
		{
			DataOutputStream out = new DataOutputStream(serverConn.getOutputStream());
			BufferedReader in = new BufferedReader(new InputStreamReader(serverConn.getInputStream()));
			
			// Send a command...
			out.writeBytes("GET /uploads/media/convert.htm HTTP/1.1 \n");
			out.writeBytes("HOST:  [url]www.test.de[/url] \n");      // ???
			out.writeByte('\n');                                      // ???       
			
			// ...and receive the results
			System.out.println("Server says: ");
			
			String zeile;
			while ((zeile = in.readLine()) != null)
			{
				System.out.println(zeile);
				quellcode+=zeile;
			}
		}
		catch (IOException e) 
		{
			System.out.println("Communication SimpleClient: " + e);
			System.exit(1);		
		}
	}
 
Zwei Auszüge aus dem HTTP-RFC:

HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body
(see appendix 19.3 for tolerant applications). The end-of-line marker within an entity-body is defined by its
associated media type, as described in section 3.7.
CRLF = CR LF

The Request-Line begins with a method token, followed by the Request-URI and the protocol version, and
ending with CRLF. The elements are separated by SP characters. No CR or LF is allowed except in the final CRLF
sequence.
Request-Line = Method SP Request-URI SP HTTP-Version CRLF

Du solltest also die Zeile mit \r\n\r\n abschließen.
 
Weiterhin muss man beim HTTP/1.1 Protokoll noch mitschicken, welchen Server man eigentlich meint.

Ein Socket verbindet sich immer nur zu einer IP. Und zwei verschiedene Domains können durchaus die gleiche IP haben.
Wenn beispielsweise test.com und test2.com auf der gleichen IP sitzen, muss der Webserver nun wissen, von welcher Domain er denn die Seite liefern soll. Dafür ist "Host: www.test.com" da.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben