# html Code darstellen



## Mark (10. Nov 2005)

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.


```
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);		
		}
	}
```


----------



## Illuvatar (10. Nov 2005)

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.


----------



## Lim_Dul (11. Nov 2005)

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.


----------

