@Override
	public void run() {

		try {

			parsRequest();

			if (response.isOK()) {

				if (isSMTPorIndexRequest()) {
					SMTPRequest.handler(request, response);
				} else {
					buildResponse();
				}

			}

		} catch (Exception e) {
			this.response.setInternalServerError(request.GetHttpVer());
		} finally {

			try {
				sendResponse();
			} catch (IOException e1) {
				e1.printStackTrace();
			}

			this.queue.Dequeue();

			try {
				this.socket.close();
			} catch (IOException e) {
			}
		}
	}