1.socket
網絡上任意兩個程序之間要進行通信,需要依靠socket(端口)。socket封裝了TCP/IP協議,讓網絡通信基於TCP/IP協議的形式實現。
socket可以翻譯為插座,那么一個服務器就擁有很多個“插座”,不同的“插座”可以實現不同的服務(應用程序)。在一台計算機上面,每個獨立的應用程序
(比如qq,微信,瀏覽器等)都占用着一個端口,不管是發出請求還是接收數據,都可以查看到IP和端口號。
2 socket編程的局限
基於socket的網絡編程,可以讓我們實現在多個不同客戶端服務端之間的通信,傳輸數據(請求request和響應response)
但是網絡上傳輸的數據千奇百怪,場景也非常多,因此很多時候需要對請求和響應的數據進行解析(比如通過對request進行解析,可以在請求頭找到傳輸的協議,
url等信息),這一部分非常麻煩並且具有高度重復性。這時候,才需要各種各樣的web框架來輔助實現。
3 web框架(django)
由於近來在學django,就只說這個了。
django內部並沒有socket,而是需要從socket那獲取請求數據進行解析,然后再產出響應的數據字符串給到socket,socket再發回給客戶端。
django中,通過wsgi實現框架與Web服務器之間的連接。
通過下圖,更加形象地理解django框架的實現過程。

后續待補充......
