Ich schreibe eine Serveranwendung in Java. Jedes Mal, wenn ein Benutzer über einen Browser auf den Server zugreift, wird ein neuer Client-Socket erstellt. Gibt es eine gute Möglichkeit, GET-, POST- und Header-Informationen aus diesem Client-Socket zu extrahieren? Z.B. wenn ein Kunde beitritt localhost:PORT/somefile.html
Ich möchte "somefile.html" -Informationen extrahieren.
Antworten:
1 für die Antwort № 1Wenn Sie nur ein TCP / IP-Socket-Programm schreiben,Das HTTP-Protokoll wird erst verstanden, wenn Sie das alles programmiert haben. Suchen Sie entweder eine HTTP-Serverbibliothek oder seien Sie realistisch und installieren Sie einen Servlet-Container wie Tomcat und schreiben Sie JSP / Servlets. Das Schreiben eines Webservers ist im Allgemeinen Zeitverschwendung, da es a ist komplexe Aufgabe und Sie können mehrere bereits gemacht finden.
0 für die Antwort № 2
Ich habe einen sehr einfachen, aber vollständigen http get / post Parser in reinem Core Java geschrieben.
sehen: http://kuchaguangjie.iteye.com/blog/2002257
Es ist nur ein sehr einfaches Beispiel, die Vollversion wird gleichzeitig unterstützt, ist aber zu groß, um sie dort abzulegen.
Quellcode von tomcat
oder netty
wäre eine gute Referenz, um einen http-Parser zu schreiben.
Ein Buch mit dem Titel "How Tomcat Works" wäre ebenfalls ein guter Leitfaden.