導航:首頁 > IDC知識 > http伺服器實現

http伺服器實現

發布時間:2020-12-10 06:30:13

1、實現一個http伺服器需要怎樣進行?需要哪些知識

只談 Linux 下。

直接用現成的,Apache / Nginx,python -m SimpleHTTPServer

用庫寫基本的,Python 的 HTTPServer / CGIHTTPServer 等

用 C 從底層手寫:POSIX API, Sockets,RFC 2616 。基版本的單線程迭代阻塞處理;然後權是高級點的優化
I/O multiplexing (select / poll, epoll)
進程、線程分派模型:one-request-per-child / one-request-per-thread
非阻塞 I/O,edge trigger

2、實現一個http伺服器需要怎樣進行?需要哪些知識

只談 Linux 下。 直接用現成的,Apache / Nginx,python -m SimpleHTTPServer 用庫寫基本的,Python 的 HTTPServer / CGIHTTPServer 等 用 C 從底層手寫:POSIX API, Sockets,RFC 2616 。基本的單版線程迭代阻塞處理;然後是高級權點的優化 I/O multiplexing (select / poll, epoll) 進程、線程分派模型:one-request-per-child / one-request-per-thread 非阻塞 I/O,edge trigger 望採納。

3、如何用c語言實現http伺服器

//服務端簡易代碼如下:
#include <stdio.h>  
#include <stdlib.h>  
  
#include <err.h>  
#include <event.h>  
#include <evhttp.h>  
  
void http_handle(struct evhttp_request *req, void *arg); /*  HTTP Request Handle  */  
  
int main(){  
    struct evhttp *httpd;  
    event_init();  
    httpd = evhttp_start("0.0.0.0", 2345);  
    if (httpd == NULL) {  
        fprintf(stderr, "Error: Unable to listen on %s:%d ");  
        exit(1);      
    }     
    evhttp_set_timeout(httpd, 2000);  
    evhttp_set_gencb(httpd, http_handle, NULL);  
    event_dispatch();  
    evhttp_free(httpd);  
  
    return 0;  
}  
  
void http_handle(struct evhttp_request *req, void *arg){  
    struct evbuffer *buf;  
    buf = evbuffer_new();  
  
    /*  Response the client  */  
    evhttp_send_reply(req, HTTP_OK, "OK", buf);  
  
    //evbuffer_add_printf(buf, "%s", "HTTPSQS_AUTH_FAILED");  
  
    /*  Release the memory  */  
    evbuffer_free(buf);  
    fprintf(stderr,"Send  ");  
}

編譯:編譯時把libevent的類庫中的.so文件和.h文件連接 進來。

4、網路編程---實現一個HTTP伺服器

如果編寫要求是完全靠自個去編,不利用控制項的話。
你的要求以標准5號字十個標准A4頁面也裝不下的。
可以寫成一本小冊了。所以,這種課題性的題目還是不要在網上提吧,沒人能花那麼多的精力幫你寫的。

5、java 如何搭建http伺服器

看你具體是想做什麼,現在現成的開源的java的http伺服器有很多,像tomcat之類的都有http伺服器功能,如果你只是單純的需要用的話,直接用tomcat就好了

但是如果你是做要自己用java實現一個http伺服器的話就要稍微麻煩一點

http伺服器,本質上還是基於tcpip協議的伺服器,首先用java的ServerSocket監聽一個埠(也可以使用開源的server組件,如quickserver之類的),然後對客戶端發上來的數據進行處理,這里就需要了解一下http協議了,因為上來的數據,都是按照http協議來組織的,你需要將請求數據解析後,將響應數據組織成http的響應,發回給客戶端。這樣一個簡單的http伺服器就實現了。

但是這個請求和響應都有很多種類,一個完整的http伺服器應該要都能夠支持,所以這裡面的工作量還是有一點的。

另外,上面說的http伺服器只是一個靜態的伺服器,如果你想讓你寫的服務具有動態功能,那你的伺服器還得提供javaee的容器功能,這樣做下去,沒准你也能寫一個tomcat出來了……

6、怎樣使外網訪問自己建立的HTTP伺服器

如果沒有公網IP的話,可以藉助一些內網穿透軟體,比如開源的holer配置一個key就實現從外網訪問了

7、實現一個http伺服器需要怎樣進行?需要哪些知識

只談 Linux 下。

直接用現成的,Apache / Nginx,python -m SimpleHTTPServer

用庫寫基本的,Python 的 HTTPServer / CGIHTTPServer 等

用 C 從底層手寫版:POSIX API, Sockets,RFC 2616 。基本的單線程迭代阻權塞處理;然後是高級點的優化
I/O multiplexing (select / poll, epoll)
進程、線程分派模型:one-request-per-child / one-request-per-thread
非阻塞 I/O,edge trigger

8、實現一個http伺服器需要怎樣進行?需要哪些知識

需要socket(套接字)編程、HTTP協議的知識,實現一個最簡單的HTTP伺服器,其實就是根據版HTTP協議的權通信規則來發送socket數據,往往是綁定(用bind調用)一個socket(套接字)然後監聽(用listen調用)80埠,具體任何實現可以參考網上的一些簡單的代碼。之所以說這是最簡單的HTTP伺服器,是因為HTTP伺服器還要處理並發、緩存等功能,更進一步還要支持某種動態腳本比如PHP的模塊。

9、簡單的HTTP Web伺服器實現

可以使用開源的http伺服器如:Apache HTTP 伺服器。

與http伺服器實現相關的知識