benchaimberg / rust-http-server Goto Github PK
View Code? Open in Web Editor NEWA single-threaded HTTP server implemented in Rust.
A single-threaded HTTP server implemented in Rust.
If the URL ends with / without specifying a file name, your server should return index.html if it exists; otherwise it will return Not Found.
If the mapped file is a static file (not executable), your server should be able to detect content type by file name suffix, including (.txt, .html, .jpg).
The server should have a timeout function. If a new connection does not give a complete request to the server approximately within timeout from the time of being accepted, the server should disconnect the connection. The timeout value is 3 seconds.
If the request URL is for DocumentRoot (i.e., empty URL) without specifying a file name and the User-Agent header indicates that the request is from a mobile handset (e.g., it should at least detect iphone by detecting iPhone in the User-Agent string), it should return index_m.html
, if it exists; index.html
next, and then Not Found.
Currently, the server returns responses encoded by chunks if the response is greater than a certain size. This is not really the proper use of chunked response encoding. What we should do is use chunked response encoding when the underlying resource is a stream of bytes (the stdout of a CGI script, for example). This requires incremental parsing and would be probably nicer to implement if we hook it in to the selector system.
Heatbeat monitoring: Your server needs to implement a heartbeat monitoring URL service to integrate with a load balancer (e.g., Amazon Load Balancer). In particular, a load balancer may query a virtual URL (i.e., no mapped file) named load (i.e., with request GET /load HTTP/1.0
). If the server is willing to accept new connections, it should return status code 200; otherwise, it returns code 503 to indicate overloading. Please describe a particular design and implement it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.