Skip to content

Commit 44c852e

Browse files
committedSep 15, 2018
Initial project
0 parents  commit 44c852e

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed
 

‎.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/target/
2+
/.settings/
3+
.project
4+
.classpath

‎README.md

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
Innlevering #1: HTTP Server
2+
===========================
3+
4+
Oppgaven:
5+
---------
6+
7+
Nesten alle utviklere jobber med HTTP til daglig.Den mest brukte versjonen av HTTP er definert i [RFC 7230](https://tools.ietf.org/html/rfc7230) mm. For at dere skal bli kjent med protokollen går innlevering #1 ut på å lage en minimal implementasjon av protokollen.
8+
9+
Serveren skal bruke parametre fra requesten og svare tilsvarende. Dere kan benytte tjesten [URL Echo](http://ivanzuzak.info/urlecho/) som mal.
10+
11+
HTTP er definert som en request/response protokoll. Det vil si at en klient (typisk en nettleser) oppretter en forbindelse til en server og sender en request. Serveren svarer med en response. Både requesten og responsen er tekst som sendes over nettverket. En typisk utveksling kan se slik ut (fra [RFC 7230](https://tools.ietf.org/html/rfc7230#section-2.1)):
12+
13+
Client request:
14+
15+
GET /hello.txt HTTP/1.1
16+
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
17+
Host: www.example.com
18+
Accept-Language: en, mi
19+
20+
21+
Server response:
22+
23+
HTTP/1.1 200 OK
24+
Date: Mon, 27 Jul 2009 12:28:53 GMT
25+
Server: Apache
26+
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
27+
ETag: "34aa387-d-1568eb00"
28+
Accept-Ranges: bytes
29+
Content-Length: 51
30+
Vary: Accept-Encoding
31+
Content-Type: text/plain
32+
33+
Hello World! My payload includes a trailing CRLF.
34+
35+
36+
Innleveringen:
37+
--------------
38+
39+
Dere skal levere inn oppgaven i GitHub og jobbe parvis. Dersom du ønsker å være med å påvirke hvem du skal jobbe med, så kan du [fylle ut dette spørreskjema](https://docs.google.com/forms/d/1ao3Is3_Or_Tku_77ZDjdr-Sr1O-0Ag7fsljYjKh7rFQ/prefill). Dere kan velge nye grupper til neste innlevering.
40+
41+
I tillegg til koden i GitHub skal dere ta opp en video på 3-8 minutter der dere parprogrammerer litt kode. Screencast-o-matic anbefales som verktøy for video-opptaket, men andre verktøy kan benyttes. En lenke til videoen skal leveres – ikke videoen selv. Husk å åpne for tilgang til videoen («unlisted» i Youtube).
42+
43+
44+
Innholdet i oppgaven er definert i form at et sett med [GitHub issues](https://github.com/jhannes-playpen/innlevering-1-http/issues). Det er lurt å kopiere disse issues til deres eget kopi av prosjektet.
45+
46+
47+
48+
49+
Vurderingskriterier:
50+
--------------------
51+
52+
* Koden må kompilerer og serveren må la seg starte.
53+
* README.md må beskrive hvordan man starter opp serveren
54+
* Det bør være god testdekning på koden
55+
* Serveren bør ikke krasje/falle ned av seg selv
56+
* Klienten bør koble seg fra korrekt
57+
* Prosjektet bør være dokumentert i form av README.md som også bør inneholde:
58+
* Hvordan man tester løsningen
59+
* Kommentarer på eget resultat. Hva kunne vært gjort bedre?
60+
* Eventuelle spørsmål dere trenger svar på for å komme videre.
61+
* Koden bør kunne håndtere funksjonalitet:
62+
* Forskjellige status codes
63+
* Forskjellige HTTP headere
64+
* Forskjellige HTTP bodies
65+
66+
67+
68+
69+

‎pom.xml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<modelVersion>4.0.0</modelVersion>
3+
<groupId>no.kristiania.pgr200.innlevering1</groupId>
4+
<artifactId>http-server-innlevering-starter</artifactId>
5+
<version>0.0.1-SNAPSHOT</version>
6+
7+
<dependencies>
8+
<dependency>
9+
<groupId>junit</groupId>
10+
<artifactId>junit</artifactId>
11+
<version>4.12</version>
12+
<scope>test</scope>
13+
</dependency>
14+
<dependency>
15+
<groupId>org.assertj</groupId>
16+
<artifactId>assertj-core</artifactId>
17+
<version>3.11.1</version>
18+
<scope>test</scope>
19+
</dependency>
20+
</dependencies>
21+
22+
<build>
23+
<plugins>
24+
<plugin>
25+
<artifactId>maven-compiler-plugin</artifactId>
26+
<configuration>
27+
<target>1.8</target>
28+
<source>1.8</source>
29+
</configuration>
30+
</plugin>
31+
</plugins>
32+
</build>
33+
</project>

0 commit comments

Comments
 (0)
Please sign in to comment.