Quellcode & Ausgabe

Status
Nicht offen für weitere Antworten.

Fridolin99

Neues Mitglied
Hallo Jungs,
ich habe eine Java Aufgabe zu bearbeiten & habe echt kaum eine Ahnung davon... Zu einem gegegebenen Quellcode muss ich 3 Fragen beantworten. Es wäre nett wenn ihr mit helfen könntet...

Code:
import java.io.*;
import java.net.*;
public class TUC
{
public static void main(String[] s)
{
String firstLine;
Socket conn;
PrintStream out;
ServerSocket sock;
BufferedReader in;
try {
sock = new ServerSocket(80);
while (true)
{
// Wait for incoming tcp connection requests.
conn = sock.accept();
// Create input and output streams for the tcp connection.
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
out = new PrintStream(conn.getOutputStream());
// Read the first line of the http request.
firstLine = in.readLine();
if (firstLine.indexOf(" /testseite ") != -1)
{
// Find the HTTP version number.
int verPos = firstLine.indexOf("HTTP");
// Print HTTP-Header
out.println("HTTP/1.1 200 OK");
out.println("Content-Type: text/plain");
// Print HTTP-Body
out.println();
out.println("Herzlich willkommen!");
out.print("Sie verwenden HTTP version ");
out.println(firstLine.substring(verPos+5, verPos+8));
}
else
{
out.println("HTTP/1.1 200 OK");
out.println("Content-Type: text/plain");
out.println();
out.println("Die angeforderte Seite ist nicht
verfügbar.");
}
// Close the connection.
conn.close();
}
} catch (IOException ioX){ System.out.println(ioX); };
}
}

Das ist der Code & ich muss dazu diese Fragen beantworten:
• Annahme: Der Server (also die Java-Anwendung) ist lokal bei Ihnen
gestartet. Erklären Sie, was passiert, wenn dieser eine Anforderung
„testseite“ erhält, z.B. von Ihrem Webbrowser über die Eingabe der URL
http://localhost/testseite
• Wie sieht die Ausgabe (Response) des Servers aus und was bewirkt diese
in Ihrem Webbrowser?
• Was passiert, wenn die URL http://localhost/eineandereseite eingegeben
wird?

Könntet ihr mir da vielleicht bei der Lösung behilflich sein?
 

Schandro

Top Contributor
Ja, wie immer ist die Antwort ganz einfach:

Entweder du stellst ne spezielle Fragen oder du musst es selber machen...
 

Saxony

Top Contributor
Ähm,

zudem stehen die Antworten doch fast eins zu eins im Code. Musst nur out.println(" und "); entfernen. :D

bye Saxony
 

ARadauer

Top Contributor
Also HTTP, das Protokoll in dem die Kommunikation zwischen Webservern und Browsern geregelt ist. Ist textbasieren, das heißt man kann es schön mitlesen. Bzw es ist in java gar nicht schwer einen webserver zu schreiben.

Du wirst das wahrscheinlich mal für eine Prfüng brauche, drüm würd ich nicht einfach eine Antwort kopieren.
schau dir das mal an http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol unter Funktionsweise.
Da sieht mans schon, was der Browser schickt und was der Server zurück schickt.

Code:
String firstLine;
		Socket conn;
		PrintStream out;
		ServerSocket sock;
		BufferedReader in;
		try {
			sock = new ServerSocket(80);
			while (true) {
				// Wait for incoming tcp connection requests.
				conn = sock.accept();
				// Create input and output streams for the tcp connection.
				in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
				out = new PrintStream(conn.getOutputStream());

Öffnet einen Verbindugnsendpunkt und hört auf den Port 80 (HTTP) auf eingehende Verbindungen.
Kommt eine Anfrage eines Client (Browser), wird eine Verbindung geöffnet (conn = sock.accept();) und input und output streams zum senden und empfangen von daten geöffnet.

Der Browser fordert, wie auf der wiki seite beschrieben, eine Seite an und der Server sendet wie ebenfalls auf der wiki seite beschrieben seine antwort zurück. request und response

if (firstLine.indexOf(" /testseite ") != -1)
das bedeutet so viel wie, wenn die Postitioni in der ersten Zeile von "\testseite" nicht -1 ist, also testseite in der ersten zeile vorhanden ist...dann wird halt entschieden ob "Herzlich willkommen!" oder "Die angeforderte Seite ist nicht verfügbar" angezeigt wird.......
 

Fridolin99

Neues Mitglied
Danke, für die verständliche Erklärung.
Also, wenn ich jetzt
'http://localhost/testseite' eingebe, dann gehe ich doch in die if-Schleife, richtig?

Code:
if (firstLine.indexOf(" /testseite ") != -1) 
{ 
// Find the HTTP version number. 
int verPos = firstLine.indexOf("HTTP"); 
// Print HTTP-Header 
out.println("HTTP/1.1 200 OK"); 
out.println("Content-Type: text/plain"); 
// Print HTTP-Body 
out.println(); 
out.println("Herzlich willkommen!"); 
out.print("Sie verwenden HTTP version "); 
out.println(firstLine.substring(verPos+5, verPos+8)); 
}

Und dann erhalte ich als Ausgabe,
HTTP/1.1 200 OK
Content-Type: text/plain

Herzlich Willkommen!
Sie verwenden HTTP version 'der substring'

Stimmt das?
Und was wird dann als 'firstLine.substring(verPos+5, verPos+8)' ausegegeben?
 

ARadauer

Top Contributor
ja genau,
und die ausgabe veranlasst den Browser, die Antwort als Text anzuzeigen.
Content-Type: text/plain
da könnte auch was anderes stehen zb image/jpeg, ein Browser muss ja auch bilder anzeigen können.

HTTP/1.1 200 OK, bedeutet dass die Anfrage erfolgreich war.
gibt noch andere zb 404 nicht gefunden oder 500 Server Fehler

...
gib dir mal mit einem System.out.println die firstline auf der Console aus

// Read the first line of the http request.
firstLine = in.readLine();
System.out.println(firstLine);

Bei mir kommt da sowas: GET /testseite HTTP/1.0

int verPos = firstLine.indexOf("HTTP"); hohlt sich nun die Position in der Zeile wo "HTTP" beginnt.
Das ist das 16. Zeichen, da wir in Java bei 0 zu zählen beginnen, ist in der Variable 15 enthalten.

firstLine.substring(verPos + 5, verPos + 8) gibt nun vom 21. bis zum 24. Zeichen den Text zurück, also 1.0

"Sie verwenden HTTP version 1.0" wird dann schlussendlich ausgegeben
 
F

Fridolin98

Gast
Ok,
Was passiert, wenn die URL http://localhost/eineandereseite eingegeben wird?
Dann gehen wir doch in den else Zweig & erhalten:

HTTP/1.1 200 OK
Content-Type: text/plain

Die angeforderte Seite ist nicht verfügbar.

Richtig???
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
O Quellcode nach bestimmter Ausgabe durchsuchen Java Basics - Anfänger-Themen 14
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
jhCDtGVjcZGcfzug Was genau ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 5
jhCDtGVjcZGcfzug Was ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
F Quellcode wird nicht in cmd angezeigt Java Basics - Anfänger-Themen 8
N Erste Schritte Quellcode fehlerhaft Java Basics - Anfänger-Themen 2
J Methoden Quellcode DP Fibonaaci erklärt Java Basics - Anfänger-Themen 5
L Fehler in Quellcode?! Java Basics - Anfänger-Themen 3
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
Hacer Quellcode lesen Java Basics - Anfänger-Themen 13
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
G Quellcode verstehen Java Basics - Anfänger-Themen 9
F Quellcode optimieren... Java Basics - Anfänger-Themen 4
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
U Java Quellcode Schaltjahr Java Basics - Anfänger-Themen 13
D Quellcode verstehen Java Basics - Anfänger-Themen 4
G Quellcode "splitten" Java Basics - Anfänger-Themen 6
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
J Quellcode von einem Link kriegen? Java Basics - Anfänger-Themen 3
W Datentypen String in Quellcode umwandeln Java Basics - Anfänger-Themen 25
J Java-Quellcode Java Basics - Anfänger-Themen 13
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
T Quellcode zur .jar oder .exe Java Basics - Anfänger-Themen 7
D Verbesserungsvorschläge zum Quellcode Java Basics - Anfänger-Themen 15
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
M Quellcode kann nicht kompiliert werden Java Basics - Anfänger-Themen 6
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
T Quellcode zu Jar? Java Basics - Anfänger-Themen 14
S Erste Schritte Fakultät Quellcode Java Basics - Anfänger-Themen 12
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
N Feste Hardcodierte Pfade im Quellcode Java Basics - Anfänger-Themen 6
S Allgemein: Quellcode einrücken Java Basics - Anfänger-Themen 8
W Kurzer Quellcode klein aber oho! Java Basics - Anfänger-Themen 7
H frage zu meinem quellcode Java Basics - Anfänger-Themen 10
M String in Quellcode umwandeln Java Basics - Anfänger-Themen 9
S Textfragmente aus Quellcode lesen und abspeichern Java Basics - Anfänger-Themen 2
U Netzwerk Chatprogramm Quellcode funktioniert nicht Java Basics - Anfänger-Themen 6
A Quellcode aus diesem Forum für komerzielle Zwecke/Bachelor Thesis? Java Basics - Anfänger-Themen 4
F Datei Quellcode Java Basics - Anfänger-Themen 8
W Hilfe bei Interpretation von Quellcode Java Basics - Anfänger-Themen 8
X Webseite auslesen ohne Quellcode zu splitten Java Basics - Anfänger-Themen 3
A log4j - wie kann ich im Quellcode initialisieren statt in der properties-Datei? Java Basics - Anfänger-Themen 2
N Quellcode absichern? Java Basics - Anfänger-Themen 21
M mit java quellcode im browser öffnen Java Basics - Anfänger-Themen 1
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
M Quellcode verbessern Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
I Kann nicht compilieren warum? Bei großen Quellcode. Java Basics - Anfänger-Themen 8
A Änderung im Quellcode > javac > keine Änderung in Kons Java Basics - Anfänger-Themen 6
C Quellcode richtig bisher? wie gehts weiter? Java Basics - Anfänger-Themen 13
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
D quellcode in webseite einbinden Java Basics - Anfänger-Themen 7
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
D Fragen zu Quellcode QuickSorter Java Basics - Anfänger-Themen 13
M Java Quellcode in eine exe datei umwandeln Java Basics - Anfänger-Themen 4
G Quellcode kommentieren Java Basics - Anfänger-Themen 6
S html quellcode runterladen Java Basics - Anfänger-Themen 2
D Quellcode richtig lesen lernen Java Basics - Anfänger-Themen 8
S Von einer jar.Datei den Quellcode. Java Basics - Anfänger-Themen 1
A Jar Datei im Quellcode einbinden Java Basics - Anfänger-Themen 3
G Problem mit Quellcode! Java Basics - Anfänger-Themen 15
D Import von Quellcode Java Basics - Anfänger-Themen 2
H Wo in GUI-Klasse bringe ich Quellcode unter? Java Basics - Anfänger-Themen 8
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
O mathematische Formel in quellcode Java Basics - Anfänger-Themen 5
M Quellcode einschränken?! Java Basics - Anfänger-Themen 6
L Fehler im simplen Quellcode! Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben