採用web資料介面:
跨廣域網
客戶端操作原理:
與session類似,當在主伺服器上登入之後,得到對應的sessionid(與我們傳送請求之後,會為該請求建立乙個唯一的sessionid)
以後我們的每次操作都會帶上這個sessionid,就好比我們的身份證一樣
sid 有效期:
同樣,與請求的sessionid一樣,都有有效期,這裡的有效期是,
簡稱:sid 乙個64位的隨機數,
變數名:不區分大小寫
grm主伺服器固定位址,
注意:grm裝置的讀取操作,會被資料伺服器緩衝
但是寫操作不會被資料伺服器緩衝,若不同客戶端對同乙個grm變數進行寫操作,那麼前面的就會被後面的覆蓋
客戶端操作
:對所有的操作命令都是http的post動作,在post請求裡面的必須部分只需要host和content_length,若需要讀取大量資料,那麼我們可以加上乙個字段:accept-encoding:gzip選項,
作用:啟動http的壓縮功能
作用:直接登入到主伺服器,得到sid和該裝置所屬的資料伺服器位址
請求內容中的grm=******就是grm裝置的序號,pass就是grm裝置的密碼,行與行之間的分隔符是\r\n
返回三行:
成功:ok
addr:ip:port
sid:sessionid
出錯:error
登入成功之後,就可以來讀取對應的變數了
(/exdata?sid=******&op=w)
和我們在mysql資料庫中讀取資料類似
既可以讀取乙個變數,也可以讀取所有的資料
傳送目標:由我們登入所得到的資料
請求內容:
變數個數\r\n
變數名1\r\n
變數名2\r\n
成功:ok
2變數值1
#nan#(若名稱錯誤,返回#error#錯誤碼,無值#nan#)
該命令的url和返回內容都與【讀變數】命令完全相同,唯一區別就是請求內容為空白,『
作用:由於grm伺服器讀命令使用了快取,這樣是直接衝快取中中的請求內容,可以節約客戶端流量
解析:重複上次讀的操作是重複上一次有內容的操作,
比如:我現在執行了讀取ph這個變數的讀取操作,那麼第二次,我將post請求內容置為空,那麼這次執行的其實是我們第一次讀取ph這個操作,以後執行多少次重複讀都是重複的這個操作。
與請求的傳送目標相同,都是我們登陸時候,返回的資料
單個寫命令可以寫入的變數數目沒有限制,但是對連線在grm模組串列埠上的plc或者io裝置來說,通常每秒鐘之只能寫入不超過10個變數,若發出很多的寫命令,那麼會很久才能執行完成/
web伺服器 簡單web伺服器實現
三次握手 一般情況下是瀏覽器先傳送請求資料,c s ack 應答 三次握手成功後,才開始進行通訊資料的收發。四次揮手 一般情況下是客戶端先關閉,給瀏覽器傳送關閉資訊。如果瀏覽器傳送了關閉資訊,但是伺服器沒有回過去,較慢 那麼瀏覽器一直發是不是就會有問題?所以會等待 2msl的時間。一般為2 5分鐘。...
保護web伺服器的安全 保護Web伺服器
保護web伺服器的安全 存檔日期 2019年5月14日 首次發布 2009年4月21日 web伺服器是組織的眾多公共角色之一,因此很容易成為目標。作為一種公共資源,web伺服器對於某些人來說就像是 鯊魚餌 但這不必一定是 了解如何同時公開和安全地使用web伺服器。此內容不再被更新或維護。全文以pdf...
web伺服器 併發web伺服器實現 epoll
在linux的網路程式設計中,很長的時間都在使用select來做事件觸發。在linux新的核心中,有了一種替換它的機制,就是epoll。epoll 是當今 linux 系統採用的方式,一般伺服器都是用 epoll 來實現的。epoll 是一種方案,這種方案不使用多程序多執行緒多協程,而是使用單程序單...