1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package de.tudarmstadt.informatik.hostage.protocol;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.regex.Pattern;
- public final class HTTP implements Protocol<String> {
- @Override
- public int getPort() {
- return 80;
- }
- @Override
- public TALK_FIRST whoTalksFirst() {
- return TALK_FIRST.CLIENT;
- }
- @Override
- public List<String> processMessage(String message) {
- List<String> response = new ArrayList<String>();
- if(!message.contains("HTTP/1.1")){
- response.add("HTTP/1.1 505 HTTP Version not supported");
- } else if(message.contains("GET")) {
- response.add(header+html);
- } else if(message.contains("HEAD")) {
- response.add(header);
- } else {
- response.add("HTTP/1.1 501 Not Implemented");
- }
- return response;
- }
- @Override
- public boolean isClosed() {
- return false;
- }
- @Override
- public boolean isSecure() {
- return false;
- }
- @Override
- public Class<String> getType() {
- return String.class;
- }
- @Override
- public String toString() {
- return "HTTP";
- }
- private String header = "HTTP/1.1 200 OK\r\n" +
- "Date: Mon, 01 Jul 2013 18:27:55 GMT\r\n" +
- "Server: Apache/2.2.22 (Debian)\r\n" +
- "X-Powered-By: PHP/5.4.4.-14\r\n" +
- "Vary: Accept-Encoding\r\n" +
- "Content-Length: 173\r\n" +
- "Keep-Alive: timeout=5, max=100\r\n" +
- "Connection: Keep-Alive\r\n" +
- "Content-Type: text/html\r\n" +
- "\r\n";
- private String html = "<!doctype html>\n" +
- "<html lang=\"en\">\n" +
- "<head>\n" +
- "<meta charset=\"UTF-8\">\n" +
- "<title>Test successful</title>\n" +
- "</head>\n" +
- "<body>\n" +
- "<h1>Test successful</h1>\n" +
- "<p>Congratulations.</p>\n" +
- "</body>\n" +
- "</html>";
- }
|