nginx, flask, wsgi

原來本身還沒搞懂這些。html

首先post一個觀點:python

nginx應該是沒解析任何東西,就判斷是否是http請求,而後轉發?或者判斷是否是tcp請求,而後轉發。nginx

因此給了python後臺就能夠用wsgi解包。web

 

瀏覽器發送一個HTTP請求;chrome

服務器收到請求,生成一個HTML文檔;flask

服務器把HTML文檔做爲HTTP響應的Body發送給瀏覽器;api

瀏覽器收到HTTP響應,從HTTP Body取出HTML文檔並顯示。瀏覽器

 

flask默認實現了多線程啊。服務器

在api裏面print("??"), time.sleep(5)就知道了,先輸出兩個??session

threaded=True,
processes=5,

這兩個參數是幹嗎的。

對,默認多線程,threaded=False,就能夠開啓不是多線程

 

 

 

 

GET

 

瀏覽器直接訪問:

GET / HTTP/1.1
Host: localhost:8888
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: session=eyJ1c2VyX2lkIjoxMX0.XFBI2g.Y6DEEvE55BrKN1RAi3ahzr2ACLY
View Code

curl:

('127.0.0.1', 37574)上線
GET / HTTP/1.1
Host: localhost:8888
User-Agent: curl/7.47.0
Accept: */*
View Code

 nginx:

GET / HTTP/1.0
Host: localhost:8080
X-Real-IP: 192.18.0.1
X-Forwarded-For: 192.18.0.1
Connection: close
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: session=eyJ1c2VyX2lkIjoxMX0.XFBI2g.Y6DEEvE55BrKN1RAi3ahzr2ACLY
If-None-Match: W/"5c334609-97a"
If-Modified-Since: Mon, 07 Jan 2019 12:28:57 GMT
View Code

 post man

GET / HTTP/1.1
Host: localhost:8888
Connection: keep-alive
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Postman-Token: 30cd6141-94c1-72f4-867b-6812798e630d
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
View Code

 

 

 

 

curl post

('192.18.0.1', 37324)上線
POST / HTTP/1.1
Host: localhost:8888
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 144
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------a2d7d2c79637d3d8


--------------------------a2d7d2c79637d3d8
Content-Disposition: form-data; name="weiming"

aa
--------------------------a2d7d2c79637d3d8--
View Code

 

postman post

('192.18.0.1', 37878)上線
POST / HTTP/1.1
Host: localhost:8888
Connection: keep-alive
Content-Length: 141
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36                                                  
Cache-Control: no-cache
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
Postman-Token: 70ba296b-ceaa-10be-0fa0-99f50f7b92c3
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxQsGCT1GJEFAARPd
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

------WebKitFormBoundaryxQsGCT1GJEFAARPd
Content-Disposition: form-data; name="weiming"

liu
------WebKitFormBoundaryxQsGCT1GJEFAARPd--
View Code

 

postman post nginx

('192.18.0.6', 34046)上線
POST / HTTP/1.0
Host: localhost:8080
X-Real-IP: 192.18.0.1
X-Forwarded-For: 192.18.0.1
Connection: close
Content-Length: 234
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Cache-Control: no-cache
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
Postman-Token: 63158aa1-955c-b6bf-0a25-3ddcf7db86df
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryNM8OhUBY87wBspdZ
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

------WebKitFormBoundaryNM8OhUBY87wBspdZ
Content-Disposition: form-data; name="weiming"

liu
------WebKitFormBoundaryNM8OhUBY87wBspdZ
Content-Disposition: form-data; name="aaa"

bbb
------WebKitFormBoundaryNM8OhUBY87wBspdZ--
View Code
相關文章
相關標籤/搜索