Swoole從入門到入土(10)——HTTP服務器[初步接觸]

討論完了TCP服務器,接下來的話題就是HTTP服務器。HTTP這個協議「通常」是搭載在TCP協議上實現的。php

注意,這裏用「通常」是之前多數是這樣作的,在「HTTP協議白皮書」中沒有規定HTTP協議底層要搭載在哪一種協議上,並且在HTTP3(由谷歌QUIC進化而成)所在的傳輸層就是搭載在UDP協議上。因此千成別認爲HTTP協議底層是TCP!html

討論Swoole中的Http服務器的過程當中,咱們只須要把握如下三點:前端

-Swoole\Http\Server 繼承自 Swoole\Server,因此TCP服務器全部的配置項、函數、事件在Http服務器中均可以使用,進程模型也是一致的。編程

-Swoole\Http\Server對 HTTP 協議的支持並不完整,必定要做爲應用服務器處理動態請求。而且在前端增長 Nginx 做爲代理。服務器

-HTTP 服務器只須要關注請求響應便可,因此只須要監聽一個 onRequest 事件。當有新的 HTTP 請求進入就會觸發此事件,事件回調函數有 2 個參數,一個是 $request 對象,包含了請求的相關信息,如 GET/POST 請求的數據。。函數

有了以上三點,咱們對一Http服務器的學習難度就大大下降了。學習

 

示例:spa

$http = new Swoole\Http\Server('0.0.0.0', 9501);

$http->on('request', function ($request, $response) {
    var_dump($request->server);
    $response->header("Content-Type", "text/html; charset=utf-8");
    $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});

$http->start();

效果圖:設計

 

 

是否是很簡單?全部的工做都在onRequest事件中展開,實現應答式的短鏈接交互。代理

HTTP初步實驗到這裏結束,你們下一篇再見:)

 

 

---------------------------  我是可愛的分割線  ----------------------------

最後博主借地宣傳一下,漳州編程小組招新了,這是一個面向漳州青少年信息學/軟件設計的學習小組,有意向的同窗點擊連接,聯繫我吧。

相關文章
相關標籤/搜索