日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

套接字没有连接并且没有提供地址_网络是怎样连接的 -- web服务器接到请求后将会做什么...

發布時間:2025/4/17 编程问答 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 套接字没有连接并且没有提供地址_网络是怎样连接的 -- web服务器接到请求后将会做什么... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CGI指的不是CGI程序本身,而是連接程序與Web服務器程序的接口規格。

服務器概覽

服務器可以分為很多種類,其硬件和操作系統與客戶端是有所不同的。但是,網絡相關的部分,如網卡、協議棧、Socket庫等功能和客戶端卻并不二致。不過他們二者調用的Socket組件不同

服務器程序的結構:程序分成兩個模塊,即等待連接模塊負責與客戶端通信的模塊。當服務器程序啟動并讀取配置文件完成初始化操作后,就會運行等待連接模塊。這個模塊會創建套接字,然后進入等待連接的暫停狀態。

每次有新的客戶端發起連接時,都會啟動一個新的客戶端通信模塊,因些與客戶端是一對一的關系。啟動新的程序會花費一點時間,一般會事先啟動幾個客戶端通信模塊。

服務器端的套接字和端口號:服務器上可能存在多個端口號相同的套接字,但客戶端有套接字都是對不同的端口號的,因此我們可以通過客戶端的端口號來確認服務器上的套接字。

不過,使用不同端口號的規則僅限一臺客戶端的內部,當有多個客戶端連接時,它們之間端口號是可能重復的。因此,我們還必須要加上客戶端的IP地址才能進行判斷。

使用描述符來指代套接字的原因如下:等待連接的套接字中沒有客戶端的IP地址和端口號使用描述符這一信息比較簡單

服務器的接收操作

網卡將接收到的信號轉換成數字的信息,網卡的MAC模塊將網絡包從信號還原為數字信息,校驗FCS并存入緩沖區。網卡驅動會根據MAC頭部判斷協議類型,并將包交給相應的協議棧。

協議棧的IP模塊會檢查IP頭部(1)判斷是不是發給自己的;(2)判斷網絡包是否經過分片;(3)將包轉交給TCP模塊或UDP模塊。

如果接收的是發起連接的包,則TCP模塊會(1)確認TCP頭部的控制位SYN;(2)檢查接收方的端口號;(3)為相應的等待連接套接字復制一個新的副本;(4)記錄發送方IP地址端口號待信息。

收到數據包時,TCP模塊會(1)根據收到的包的發送方IP地址、發送方端口號、接收方IP地址、接收方端口號找到相對應的套接字;(2)將數據塊拼合起來并保存在接收緩沖區中;(3)向客戶端返回ACK.

Web服務器程序解釋請求消息并作出響應

將請求的URI轉換為實際的文件名。如果URI指定的文件內容為HTML文檔或圖片,那么只要直接將文件內容作為響應消息返回客戶端就可以了。

但URI指定的文件內容不僅限于HTML文檔,也有可能是一個程序(例cgi程序)。在這個情況下,服務器不會直接返回文件內容,而是會運行這個程序,然后將程序輸出的數據返回給客戶端。

如果判斷為程序文件,Web服務器會委托操作系統運行這個程序,然后從請求消息中取出數據并交給運行的程序。運行的程序收到數據后會進行一系列處理,并將輸出的數據返回給Web服務器

web服務器還可以檢查事先設置的一些規則,并根據規則允許或禁止訪問。這種根據規則判斷是否允許訪問的功能稱為訪問控制

訪問控制規則主要有3種:客戶端的IP地址、客戶端的域名、用戶名和密碼

瀏覽器接收響應消息并顯示內容

只要根據數據類型調用用于顯示內容的程序,將數據顯示出來就可以了。對于HTML文檔、純文本、圖片這些基本數據類型,瀏覽器自身具有顯示這邊內容的功能,因此由瀏覽器自身負責顯示。

總結

以上是生活随笔為你收集整理的套接字没有连接并且没有提供地址_网络是怎样连接的 -- web服务器接到请求后将会做什么...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。