Skip to content

Commit d89a10a

Browse files
authored
Create README.md
1 parent 7e10f0d commit d89a10a

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# SOCKET HTTP SERVER
2+
3+
Once you're done, you should be able to start the web server inside the homework directory using `python -u http_server.py` and then point your web browser at locations like:
4+
* http://localhost:10000/sample.txt
5+
* http://localhost:10000/a_web_page.html
6+
* http://localhost:10000/images/sample_1.png
7+
8+
and see the corresponding file located under homework/webroot. Take a moment to look into the homework/webroot and see these files. 
9+
10+
Inside this repository you'll find the http_server.py file. I've added enough stub code for the missing functions to let the server run. And there are more tests for you to make pass!
11+
12+
You do NOT need to execute the `make_time.py` Python file. When a web user visits `http://localhost:1000/make_time.py` you only need to _serve up_ the contents of that file. But if you'd like to take on a challenge, then you _can_ choose to execute the file and serve up the result of performming that execution.
13+
14+
15+
## Building the Response
16+
17+
Your `response_path` function will need to accomplish the following tasks:
18+
19+
* It should take a URI as the sole argument
20+
* It should map the pathname represented by the URI to a filesystem location.
21+
* It should have a ‘home directory’, and look only in that location.
22+
* If the URI is a directory, it should return a plain-text listing of the directory contents and the mimetype text/plain.
23+
* If the URI is a file, it should return the contents of that file and its correct mimetype.
24+
* If the URI does not map to a real location, it should raise an exception that the server can catch to return a 404 response.
25+
26+
Because your server will be transmitting files as bytes, you might want to try searching for "reading a file as bytes in Python".
27+
28+
To find the correct mimetype for a file, you might find the following code helpful:
29+
30+
```
31+
>>> import mimetypes
32+
>>> mimetypes.guess_type('file.txt')[0]
33+
'text/plain'
34+
>>> mimetypes.types_map['.txt']
35+
'text/plain'
36+
```
37+
38+
## Use Your Tests
39+
40+
As you work your way through the steps outlined above, look at your tests. Write code that makes them pass.
41+

0 commit comments

Comments
 (0)