 
 // MARK: HTTPServerRequest
 
-/// This class implements the `ServerRequest` protocol for incoming sockets that
-/// are communicating via the HTTP protocol. 
+/**
+This class implements the `ServerRequest` protocol for incoming sockets that are communicating via the HTTP protocol. Data and Strings can be read in.
+
+### Usage Example: ###
+````swift
+ func handlePost(request: ServerRequest, response: ServerResponse) {
+     var body = Data()
+     do {
+         let length = try request.readAllData(into: &body)
+         let result = "Read \(length) bytes"
+         response.headers["Content-Type"] = ["text/plain"]
+         response.headers["Content-Length"] = ["\(result.count)"]
+ 
+         try response.end(text: result)
+     }
+     catch {
+         print("Error reading body or writing response")
+     }
+ }
+````
+*/
 public class HTTPServerRequest: ServerRequest {
     
-    /// HTTP Status code if this message is a response
+    /**
+     HTTP Status code if this message is a response
+     
+     ### Usage Example: ###
+     ````swift
+     response!.httpStatusCode
+     ````
+     */
     @available(*, deprecated, message:
     "This method never worked on Server Requests and was inherited incorrectly from a super class")
     public private(set) var httpStatusCode: HTTPStatusCode = .unknown

        self.httpParser = httpParser
    }
    
    /// Read a chunk of the body of the request.
    ///
    /// - Parameter into: An NSMutableData to hold the data in the request.
    /// - Throws: if an error occurs while reading the body.
    /// - Returns: the number of bytes read.
    public func read(into data: inout Data) throws -> Int {
        guard let httpParser = httpParser else {
            return 0

    
    private var urlc: URLComponents?
    
    /**
     The URL from the request as URLComponents
     URLComponents has a memory leak on linux as of swift 3.0.1. Use 'urlURL' instead
     
     ### Usage Example: ###
     ````swift
     print(request.urlComponents)
     ````
     */
    @available(*, deprecated, message:
    "URLComponents has a memory leak on linux as of swift 3.0.1. use 'urlURL' instead")
    public var urlComponents: URLComponents {
