A. web 伺服器怎麼與tcp伺服器通訊
一,網路編程中兩個主要的問題
一個是如何准確的定位網路上一台或多台主機,另一個就是找到主機後如何可靠高效的進行數據傳輸。
在TCP/IP協議中IP層主要負責網路主機的定位,數據傳輸的路由,由IP地址可以唯一地確定Internet上的一台主機。
而TCP層則提供面向應用的可靠(tcp)的或非可靠(UDP)的數據傳輸機制,這是網路編程的主要對象,一般不需要關心IP層是如何處理數據的。
目前較為流行的網路編程模型是客戶機/伺服器(C/S)結構。即通信雙方一方作為伺服器等待客戶提出請求並予以響應。客戶則在需要服務時向伺服器提 出申請。伺服器一般作為守護進程始終運行,監聽網路埠,一旦有客戶請求,就會啟動一個服務進程來響應該客戶,同時自己繼續監聽服務埠,使後來的客戶也 能及時得到服務。
二,兩類傳輸協議:TCP;UDP
TCP是Tranfer Control Protocol的 簡稱,是一種面向連接的保證可靠傳輸的協議。通過TCP協議傳輸,得到的是一個順序的無差錯的數據流。發送方和接收方的成對的兩個socket之間必須建 立連接,以便在TCP協議的基礎上進行通信,當一個socket(通常都是server socket)等待建立連接時,另一個socket可以要求進行連接,一旦這兩個socket連接起來,它們就可以進行雙向數據傳輸,雙方都可以進行發送 或接收操作。
UDP是User Datagram Protocol的簡稱,是一種無連接的協議,每個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網路上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內容的正確性都是不能被保證的。
比較:
UDP:1,每個數據報中都給出了完整的地址信息,因此無需要建立發送方和接收方的連接。
2,UDP傳輸數據時是有大小限制的,每個被傳輸的數據報必須限定在64KB之內。
3,UDP是一個不可靠的協議,發送方所發送的數據報並不一定以相同的次序到達接收方
TCP:1,面向連接的協議,在socket之間進行數據傳輸之前必然要建立連接,所以在TCP中需要連接
時間。
2,TCP傳輸數據大小限制,一旦連接建立起來,雙方的socket就可以按統一的格式傳輸大的
數據。
3,TCP是一個可靠的協議,它確保接收方完全正確地獲取發送方所發送的全部數據。
應用:
1,TCP在網路通信上有極強的生命力,例如遠程連接(Telnet)和文件傳輸(FTP)都需要不定長度的數據被可靠地傳輸。但是可靠的傳輸是要付出代價的,對數據內容正確性的檢驗必然佔用計算機的處理時間和網路的帶寬,因此TCP傳輸的效率不如UDP高。
2,UDP操作簡單,而且僅需要較少的監護,因此通常用於區域網高可靠性的分散系統中client/server應用程序。例如視頻會議系統,並不要求音頻視頻數據絕對的正確,只要保證連貫性就可以了,這種情況下顯然使用UDP會更合理一些。
三,基於Socket的java網路編程
1,什麼是Socket
網路上的兩個程序通過一個雙向的通訊連接實現數據的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現客戶方和服務方的連接。Socket是TCP/IP協議的一個十分流行的編程界面,一個Socket由一個IP地址和一個埠號唯一確定。
但是,Socket所支持的協議種類也不光TCP/IP一種,因此兩者之間是沒有必然聯系的。在Java環境下,Socket編程主要是指基於TCP/IP協議的網路編程。
2,Socket通訊的過程
Server端Listen(監聽)某個埠是否有連接請求,Client端向Server 端發出Connect(連接)請求,Server端向Client端發回Accept(接受)消息。一個連接就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對方通信。
對於一個功能齊全的Socket,都要包含以下基本結構,其工作過程包含以下四個基本的步驟:
(1) 創建Socket;
(2) 打開連接到Socket的輸入/出流;
(3) 按照一定的協議對Socket進行讀/寫操作;
(4) 關閉Socket.(在實際應用中,並未使用到顯示的close,雖然很多文章都推薦如此,不過在我的程序中,可能因為程序本身比較簡單,要求不高,所以並未造成什麼影響。)
3,創建Socket
創建Socket
java在包java.net中提供了兩個類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務端。這是兩個封裝得非常好的類,使用很方便。其構造方法如下:
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
其中address、host和port分別是雙向連接中另一方的IP地址、主機名和端 口號,stream指明socket是流socket還是數據報socket,localPort表示本地主機的埠號,localAddr和 bindAddr是本地機器的地址(ServerSocket的主機地址),impl是socket的父類,既可以用來創建serverSocket又可 以用來創建Socket。count則表示服務端所能支持的最大連接數。例如:學習視頻網 http://www.xxspw.com
Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);
注意,在選擇埠時,必須小心。每一個埠提供一種特定的服務,只有給出正確的埠,才 能獲得相應的服務。0~1023的埠號為系統所保留,例如http服務的埠號為80,telnet服務的埠號為21,ftp服務的埠號為23, 所以我們在選擇埠號時,最好選擇一個大於1023的數以防止發生沖突。
在創建socket時如果發生錯誤,將產生IOException,在程序中必須對之作出處理。所以在創建Socket或ServerSocket是必須捕獲或拋出例外。
4,簡單的Client/Server程序
1. 客戶端程序
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1",4700);
//向本機的4700埠發出客戶請求
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
//由系統標准輸入設備構造BufferedReader對象
PrintWriter os=new PrintWriter(socket.getOutputStream());
//由Socket對象得到輸出流,並構造PrintWriter對象
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket對象得到輸入流,並構造相應的BufferedReader對象
String readline;
readline=sin.readLine(); //從系統標准輸入讀入一字元串
while(!readline.equals("bye")){
//若從標准輸入讀入的字元串為 "bye"則停止循環
os.println(readline);
//將從系統標准輸入讀入的字元串輸出到Server
os.flush();
//刷新輸出流,使Server馬上收到該字元串
System.out.println("Client:"+readline);
//在系統標准輸出上列印讀入的字元串
System.out.println("Server:"+is.readLine());
//從Server讀入一字元串,並列印到標准輸出上
readline=sin.readLine(); //從系統標准輸入讀入一字元串
} //繼續循環
os.close(); //關閉Socket輸出流
is.close(); //關閉Socket輸入流
socket.close(); //關閉Socket
}catch(Exception e) {
System.out.println("Error"+e); //出錯,則列印出錯信息
}
}
}
2. 伺服器端程序
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer{
public static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
//創建一個ServerSocket在埠4700監聽客戶請求
}catch(Exception e) {
System.out.println("can not listen to:"+e);
//出錯,列印出錯信息
}
Socket socket=null;
try{
socket=server.accept();
//使用accept()阻塞等待客戶請求,有客戶
//請求到來則產生一個Socket對象,並繼續執行
}catch(Exception e) {
System.out.println("Error."+e);
//出錯,列印出錯信息
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket對象得到輸入流,並構造相應的BufferedReader對象
PrintWriter os=newPrintWriter(socket.getOutputStream());
//由Socket對象得到輸出流,並構造PrintWriter對象
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
//由系統標准輸入設備構造BufferedReader對象
System.out.println("Client:"+is.readLine());
//在標准輸出上列印從客戶端讀入的字元串
line=sin.readLine();
//從標准輸入讀入一字元串
while(!line.equals("bye")){
//如果該字元串為 "bye",則停止循環
os.println(line);
//向客戶端輸出該字元串
os.flush();
//刷新輸出流,使Client馬上收到該字元串
System.out.println("Server:"+line);
//在系統標准輸出上列印讀入的字元串
System.out.println("Client:"+is.readLine());
//從Client讀入一字元串,並列印到標准輸出上
line=sin.readLine();
//從系統標准輸入讀入一字元串
} //繼續循環
os.close(); //關閉Socket輸出流
is.close(); //關閉Socket輸入流
socket.close(); //關閉Socket
server.close(); //關閉ServerSocket
}catch(Exception e){
System.out.println("Error:"+e);
//出錯,列印出錯信息
}
}
}
5,支持多客戶的client/server程序
前面的Client/Server程序只能實現Server和一個客戶的對話。在實際應用 中,往往是在伺服器上運行一個永久的程序,它可以接收來自其他多個客戶端的請求,提供相應的服務。為了實現在伺服器方給多個客戶提供服務的功能,需要對上 面的程序進行改造,利用多線程實現多客戶機制。伺服器總是在指定的埠上監聽是否有客戶請求,一旦監聽到客戶請求,伺服器就會啟動一個專門的服務線程來響 應該客戶的請求,而伺服器本身在啟動完線程之後馬上又進入監聽狀態,等待下一個客戶的到來。
B. 【web】TCP和UDP、HTTP的區別
(1) TCP是面向連接的,UDP是無連接的 ,即發送數據前不需要先建立鏈接。
(2) TCP提供可靠的服務 。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。 並且因為tcp可靠,面向連接,不會丟失數據因此適合大數據量的交換。
(3) TCP是面向位元組流,UDP面向報文 ,並且網路出現擁塞不會使得發送速率降低(因此會出現丟包,對實時的應用比如IP電話和視頻會議等)。
(4) TCP只能是1對1的,UDP支持1對1、1對多 。
(5) TCP的首部較大 為20位元組,而UDP只有8位元組。
(6)TCP是面向連接的可靠性傳輸,而UDP是不可靠的。
(7) TCP和UDP都是傳輸層的協議,HTTP是在應用層的一個協議
(8)HTTP協議基於請求\響應模型的,並且是 基於TCP協議 的。
HTTP協議是建立在請求/響應模型上的。首先由客戶建立一條與伺服器的TCP鏈接,並發送一個請求到伺服器,請求中包含請求方法、URL、協議版本以及相關的MIME樣式的消息。伺服器響應一個狀態行,包含消息的協議版本、一個成功和失敗碼以及相關的MIME式樣的消息。
(9)HTTP/1.0為 多次的TCP 鏈接,HTTP/1.1提出了可持續鏈接即只建立 一次TCP鏈接 。
因此一個包含HTML內容和圖片的頁面將需要建立多次的短期的TCP鏈接。一次TCP鏈接的建立將需要3次握手。另外,為了獲得適當的傳輸速度,則需要TCP花費額外的迴路鏈接時間(RTT)。每一次鏈接的建立需要這種經常性的開銷,而其並不帶有實際有用的數據,只是保證鏈接的可靠性,因此HTTP/1.1提出了可持續鏈接的實現方法。HTTP/1.1將只建立一次TCP的鏈接而重復地使用它傳輸一系列的請求/響應消息,因此減少了鏈接建立的次數和經常性的鏈接開銷。
C. Web 瀏覽器向偵聽標准埠的 Web 伺服器發出請求之後,在伺服器響應的 TCP 報頭中,源埠號是多少
當然是80埠了。標准web應用必然是採用80埠,響應報文源埠就是指伺服器埠,所以肯定是80埠。
D. 如何才能同時提供TCP連接伺服器和web服務
並發數不要求太高,應該可以啊,socket網路編程埠分開或不分開都行,你tcp應該在應用層需要自定義協議吧,那web請求就是http協議,解析一下就好了。
E. 什麼是互聯網
一、什麼是互聯網
互聯網:凡是能彼此通信的設備組成的網路就叫互聯網。
(1)內部結構:
互聯網指的是通過TCP/IP協議族相互連接在一起的計算機的網路。TCP是Transmission Control Protocol,傳輸控制協議;IP是Internet Protocol,網際協議。TCP/IP協議族是一個網路通訊模型,是當前互聯網通訊的基礎架構。
IP用來去識別網路上的一台計算機。計算機要連接到一起相互通信,首先需要知道連接的目標計算機,而IP就能標識一台計算機。做一個類比,我們人跟人之間也需要建立連接才能交流,在一群人中說話,首先喊出一個人的名字,他就知道你在跟他說話了。IP就是計算機的名字。
TCP是計算機之間控制傳輸信息的協議,同樣的類比,就是人與人之間溝通的語言和方式。一個不會外語的中國人跟一個美國人交流是無效的,就跟好像一台計算機發送目標計算機無法識別的數據包。能夠識別出網路上的計算機,同時也能以相互理解的方式進行通訊,這樣計算機就可以連接到一起了。
(2)互聯網、網際網路、萬維網三者的關系:互聯網包含網際網路,網際網路包含萬維網。凡是能彼此通信的設備組成的網路就叫互聯網,網際網路是基於TCP/IP讓不同的設備彼此通信,TCP/IP協議由很多協議組成,不同類型的協議又被放在不同的層,其中,位於應用層的協議就有很多,只要應用層使用的是HTTP協議,就稱為萬維網。
二、互聯網的發展歷史
人類的發展歷程中常常伴隨著戰爭,戰爭往往是科技發展的原動力互聯網也不例外。
世界上第一台通用計算機"ENIAC"於1946年在美國賓夕法尼亞大學誕生,由美國人莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert),重達30噸,被美國國防部用來進行彈道計算。
互聯網誕生於冷戰時期,美國國防部研製的阿帕網(ARPA),這是互聯網的誕生雛型,主要用來傳遞戰爭情報,這個時期分組交換技術得到了發展,分組交換的意思就是完整的數據如何拆分成一個個數據包分開傳輸,接收之後就重新組裝的技術,但是互聯網的真正發展開始於1985年。
1973年TCP/IP協議實際上就已經提出來了,到了1982年,TCP/IP協議被標准化了,Internet的概念被正式提出來了。提出互聯網概念這兩個人,一個叫Vint Cerf,一個叫Robert Kahn,這兩個人也因此被譽為這個互聯網之父。2004他們獲得了叫計算機界的諾貝爾獎叫圖靈獎,這是計算機界能夠獲得的最高的終生榮譽。Vint Cerf現在依然是Google的互聯網首席科學家。
隨後美國自然科學基金會建立了各個大學之間的高速傳播的網路。如果把互聯網想成是一棵大樹,那當時美國各個大學之間建立的主幹網路,就形成了最重要的幾個核心主枝幹。後面越來越多的子網或者其他的網路,逐漸的連到這個主幹上,而形成我們今天整個全球化的互聯網。
Web的誕生:
1990年的時候出現了World-Wide-Web,萬維網,就是現在簡稱的Web。在這個詞出現之前,在這張圖中都是冷冰冰的技術術語,但是在這個詞出現之後,互聯網發展歷史上里程碑式的偉大企業相繼出現,如:Yahoo、Google和Facebook。
Web最早只是一種靜態信息的發布媒介,就是我們訪問到的網頁都是事先寫好的固定信息。在發展過程中,逐漸可以用來實現動態的功能。
TCP/IP協議可以實現信息的傳遞,萬維網基於TCP/IP協議的傳輸功能,實現超媒體的內容展現形式,超媒體可以在TCP/IP協議上傳輸文字、音頻、視頻,同時可以相互鏈接,萬維網是一種超文本文檔相互鏈接形成的一種超大規模的分布式系統。
萬維網從技術內涵上怎麼來理解呢?首先它是運行在互聯網上的,是一個TCP/IP協議之上的應用協議,它是一種超文本文檔相互鏈接形成的一種超大規模的分布式系統。
這里需要了解一下三個術語:HTTP超文本傳輸協議、HTML超文本語言和URL統一資源定位服務。雖然是技術術語,但是在我們每天的上網過程中都能看到它們的痕跡。
今天你們經常聽到Html5,比如微信的HTML5頁面,HTML5游戲等。HTML是從1.0版本開始的,有一個叫W3C的標准化組織,逐步在維護這樣一套HTML語言的標准,一直演化到今天的HTML5。HTML的作用是描述超文本文檔。比如說我們希望有一個東西展示給用戶,你需要用HTML表達出來,這樣才能放到萬維網上讓別人瀏覽。
URL可以理解為網址,就是我們在瀏覽器中輸入的一個字元串。它用來定位超文本文檔,URL協議定義了Web上如何標識出一個網頁,即超文本文檔。這跟IP協議如何標識出一台計算機的意義是相似的。
我們在瀏覽器中輸入網址,會看到網址前面都有一個「http」,這指的就是一種HTTP協議。HTTP協議定義了如何與超文本交互,信息通過超文本文檔描述好了,也可以定位到了,接下來就需要通過HTTP協議去訪問。HTTP協議定義了一套與網頁交互的工作,我們不去細究,我們只需知道這是獲取信息的一種協議,瀏覽器會把我們的各種動作翻譯成HTTP協議相關動作與Web伺服器進行交互,並且將得到的超文本文檔渲染成可讀的內容讓我們方便瀏覽。我們所謂的「連接」在技術層面都時這些協議在默默地發揮著基礎設施的作用。這就是萬維網的一個基本原理。
瀏覽器中訪問一個Web頁面的過程:
在移動端和PC端都可以訪問網頁,比如我們去訪問Google的頁面,google.com網址就是符合URL規范的網址。瀏覽器看到這個網址,首先去查詢DNS(Domain Naming Service)伺服器,DNS伺服器會將網址轉換為IP地址。萬維網是運行在TCP/IP協議之上的,所以首先需要知道Web伺服器的IP地址,DNS幫我們做了這件事情。
有了IP地址,瀏覽器就可以基於HTTP協議,向遠程的Web伺服器發送請求了。而Google的Web伺服器就能夠接收到這樣的請求,收到這樣的請求之後,它就會調用後端的一系列功能並且最終組裝出HTML頁面,通過HTTP協議返回給瀏覽器。瀏覽器把返回的HTML文本渲染成為一個美觀而且可讀的頁面,這就是在瀏覽器中看到Google的頁面了。這整個過程是在TCP/IP協議之上完成的,Web請求和Web響應都會安裝TCP協議要求的方式進行打包和傳輸。
從計算機的連接擴展到了信息的連接,互聯網這個基礎設施的深度和廣度得到了巨大的擴展。
三、互聯網商業經營模式
3.1商業模式:為何人,采購何種物品,創造何種價值,最後以何種方式換取等價物。新技術可以乘著『商業模式』這頭坐騎走向創新,也可以說商業模式自身的巨大改變即創新,包括傳統的移動互聯網商業模式和新型互聯網商業模式。
3.2美團創始人王興提出的四縱三橫理論
橫向是網民在互聯網上產生的行為,縱向是每5年一次引領技術走向的變革。他們之間相互組合會形成新的產品模式,比如:
搜索+娛樂=網路MP3
社交+內容+娛樂=SNS
移動+通信=微信
移動+娛樂=手機游戲
所解決的交叉點數量越多越強大
3.3幾類商業模式
1.免費模式
藉助免費手段銷售產品或服務建立龐大的消費群體,塑造品牌形象,然後再通過配套的增值服務、廣告費等方式取得收益的一種新商業模式。
2.平台模式
基於用戶生態衍生和創造價值,打造一個多方共贏互利的生態圈。
3.多變模式
每個客戶細分群體之間都是相互依存的,並且有自己的價值主張和收入來源。
4.長尾模式
通過C2B實現大規模個性化定製,核心是『多款少量』。
5.租賃模式
以實體或硬體作為唯一載體,取得軟體及服務的收費。
6.誘釣模式
先做一個免費的主力產品聚集用戶,然後再用流量進行變現。
7.低成本模式
利用低於競品的價格,實現薄利多銷,然後形成粉絲群,實現粉絲經濟。
8.工具+社群+電商模式
互聯網的發展,使信息交流越來越便捷,志同道合的人更容易聚在一起,形成社群。同時,互聯網將散落在各地的星星點點的分散需求聚攏在一個平台上,形成新的共同的需求,並形成了規模,解決了重聚的價值。比如微信最開始就是一個社交工具,先是通過各自工具屬性/社交屬性/價值內容的核心功能過濾到海量的目標用戶,加入了朋友圈點贊與評論等社區功能,繼而添加了微信支付、精選商品、電影票、手機話費充值等商業功能。
為什麼會出現這種情況?簡單來說,工具如同一道銳利的刀鋒,它能夠滿足用戶的痛點需求,用來做流量的入口,但它無法有效沉澱粉絲用戶。社群是關系屬性,用來沉澱流量;商業是交易屬性,用來變現流量價值。三者看上去是三張皮,但內在融合的邏輯是一體化的。
9.電商模式:
P2P:互聯網借貸平台(person-to-person),又稱點對點網路借款,是一種將小額資金聚集起來借貸給有資金需求人群的一種民間小額借貸模式。屬於互聯網金融(ITFIN)產品的一種。屬於民間小額借貸,藉助互聯網、移動互聯網技術的網路信貸平台及相關理財行為、金融服務。
o2o:即Online To Offline(在線離線/線上到線下),是指將線下的商務機會與互聯網結合,讓互聯網成為線下交易的平台,這個概念最早來源於美國。O2O的概念非常廣泛,既可涉及到線上,又可涉及到線下,可以通稱為O2O。
B2B:是Business-to-Business的縮寫,是指企業與企業之間通過專用網路或Internet,進行數據信息的交換、傳遞,開展交易活動的商業模式。它將企業內部網和企業的產品及服務,通過 B2B 網站或移動客戶端與客戶緊密結合起來,通過網路的快速反應,為客戶提供更好的服務,從而促進企業的業務發展。
B2C:是Business-to-Customer的縮寫,而其中文簡稱為「商對客」。「商對客」是電子商務的一種模式,也就是通常說的直接面向消費者銷售產品和服務商業零售模式。
C2C:實際是電子商務的專業用語,是個人與個人之間的電子商務。
3.4互聯網商業模式的變現方式
1.廣告
幾乎所有的互聯網產品都具有或可以使用廣告這種盈利模式。廣告模式還可以細分為一般廣告模式和搜索廣告模式。
2.傭金
平台類產品為企業銷售的實現提供了幫助而獲得報酬。如:京東(非自營部分)、天貓、美團、大眾點評。
3.銷售
銷售產品、數據、信息或服務。如京東自營、網路指數或一些咨詢網站出售的統計數據和商業信息、心理咨詢網站的咨詢服務。
4.開放API
通常是一些大型公司,具有技術或平台優勢的公司才有能力運營。
5.增值服務
根據客戶的需要,為客戶提供超出常規服務范圍的服務,簡單來說就是提供特權服務。
3.5優秀的商業模式案例:
在互聯網公司中說到優秀的商業模式,那就不得不提到谷歌,因為以谷歌為首的互聯網公司成功的創造了獨特的商業模式,且在今天依然非常走俏。
傳統的商業模式
說到互聯網的傳統商業模式,大家最先想到的就是由雅虎創造的門戶模式了,直到如今,新浪、網易,搜狐等門戶網站還依然活得好好的,但在新媒體的沖擊下,門戶網站的後勁明顯不足,還需要尋找新的出路,比如新浪推出的新浪微博,對新浪來說就是非常好的突破。
探索中的商業模式
除了上述已經成熟的互聯網公司的商業模式以外,近年來又涌現出了許多新的互聯網商業模式,其中以社會化網路和移動互聯網為先驅,尤其我們在移動互聯網流量什麼時候能超過PC?一文中曾對移動互聯網的流量做過分析,其中指出2015年移動互聯網的流量將超過互聯網,所以這些新的互聯網商業模式將很有可能後來者居上,爆發出非常驚人的力量出來。
四、發展現狀及趨勢
互聯網是20世紀最重大的科技發明之一,將深刻地影響人類社會文明進程。
現狀:
有30多年歷史的互聯網,在2012年已進入成熟發展階段,2015年中國PC互聯網滲透率為50%,移動互聯網滲透率為45%,按照技術擴散的三階段論(滲透率從0至10%為起始階段,從10%~40%為成熟階段,從40%~75%為飽和階段),目前中國互聯網已進入飽和階段。2018年全球使用互聯網的網民數量已經超越了40億,而同期的全球人口數量大約為76億。得益於近十幾年移動網路與智能設備的發展,在這40億網民中,有大約一半使用智能手機上網。
由此可見,互聯網處於上升階段,企業可以藉助人口紅利通過"割韭菜"實現盈利,而一旦人口紅利的優勢不在,必然要實現其他方面的轉變和創新才能在市場中繼續保持盈利。
從上圖可見,移動互聯網已取代PC互聯網,全球很多用戶將跨越PC互聯網階段,直接進入移動互聯網時代。媒體和工具作為移動互聯網的兩大屬性,仍將沿襲互聯網時代的發展路徑,媒體屬性因與其他產業的弱關聯性而率先發展,工具特性將持續深化發展。
趨勢:
1.目前在中國網路終端很多,因此多網融合是大勢所趨
有線、無線、手機、電視,以及其他的終端會最終融合,在融合的過程中會產生更大的應用服務於人類。
2.中國互聯網的行業整合速度將加快,盈利將成為互聯網發展的一個重要的出發點。
3.互聯網安全問題將引起更多重視
4.全球傳統媒體嚴重衰退,中國網路廣告收入超越電視廣告已成為不可逆轉的趨勢,網路廣告將是效果廣告的天下,以大數據精準廣告將成為網路廣告的重要發展驅動力
2013年以CPC和CPA為計費方式的效果廣告,其市場份額達66.6%,2014年該比例將超過7成。在效果類廣告為主流的中國網路廣告市場,精準廣告技術將成為網路廣告市場的重要驅動力。我們看到360公司的點睛系統、騰訊的廣點通等新的以大數據為基礎的精準廣告勢力正在快速崛起,其市場地位已經可以跟傳統的門戶相當。游戲和電商是這些精準廣告系統的主要客戶群,隨著這些客戶群的進一步發展,以及精準廣告系統在大數據方面的進一步發力,我們有理由相信,這些以大數據驅動的精準廣告勢力將成為網路廣告市場最為重要的變革和發展的驅動力。
5.互聯網消費金融市場正在崛起,大型平台類互聯網企業將驅動市場快速發展
互聯網消費金融是指消費者通過互聯網購買消費品提供消費貸款的現代服務金融方式,包括住房貸款、汽車貸款、旅遊貸款、助學貸款等。中國互聯網消費金融市場正處於發展的起步階段,2013年中國互聯網消費金融市場交易規模達到60.0億元。從互聯網消費金融交易規模構成來看,2013年互聯網消費金融交易規模主要以P2P消費信貸為主。
6.互聯網正在大力往健康領域滲透,掀起互聯網健康浪潮
越來越多的用戶在使用互聯網尋找與健康相關的解決方案,由此帶動了移動互聯網健康市場的迅速發展,從移動掛號到日常健康管理服務,從健康監測到慢病預防和慢病管理,互聯網健康浪潮正在掀起。
7.在線教育拐點到來,未來市場快速成長
學歷教育、職業在線教育是市場規模高速增長的主要動力。但值得我們注意的是,中小學在線教育市場將比整個在線教育市場的成長速度更快。
目前的教育領域的變革主要是來自移動互聯網和大數據,在線教育從相對集中的學習轉變成碎片化學習的狀態,這需要在線教育產品形態的轉變;而由於大數據的發展也使得在線教育更加智能和科學,比如我們可以通過大數據建立錯誤題庫去優化老師講課的重點,或者通過大數據去輔助學生答題,科學評估學習成績,優化學習重點,如猿題庫、學習寶和優答。
8.在線旅遊市場競爭更加激烈,市場正在醞釀變局
9.房產領域O2O做閉環,加速轉型迎發展
10.社交平台將加速生態整合,以社交為基礎打造溝通、娛樂、生活、購物和學習一站式服務平台
在三大類社交應用中,整體網民覆蓋率最高為即時通信,第二社交網站,最後為微博。即時通信(IM)在整體網民中的覆蓋率達到了89%。而值得我們注意的是,騰訊幾乎領跑了這三類主流的社交應用市場。即時通訊領域,騰訊的QQ和微信的網民滲透率分別到78%和65%,QQ空間的網民滲透率也達57%,騰訊微博為27%,僅比新浪微博低1%。最為值得關注的是微信,上線後僅用四年便取得了65%的網民滲透率,發展速度極快。
11.人工智慧
人工智慧可能會是計算機歷史中的一個終極目標。從1950年,阿蘭圖靈提出的測試機器如人機對話能力的圖靈測試開始,人工智慧就成為計算機科學家們的夢想。
五、總結
我們很慶幸可以生活在這樣一個時代,在這個時代我們註定要比其他時代見證更多的變化,作為20世界最偉大的發明互聯網,它的飛速發展讓我們感同身受的同時,也在改變著我們每個人的命運,每一次科技革命的超越都要比上一次花費更多的時間,也更難超越,又有誰能預知下一次革命還能否被超越?
F. tcp和web
tcp是網路傳輸協議web一般是網路網站
G. WEB請求處理之瀏覽器響應
當我們使用瀏覽器進行瀏覽操作的時候,會產生一系列的數據請求。現在瀏覽器和伺服器之間的數據交互是基於B/S架構的,而這種架構是建立在HTTP請求的基礎上的,當我們在瀏覽器的地址欄中輸入一個網頁的地址後,會觸發一些列事件,如下圖所示:
以上就是我們訪問網頁時會觸發的一系列事件,也是web請求處理的基本流程,接下來對幾個概念詳細介紹.
TCP協議是OSI七層協議中傳輸層的一項協議,它是一種面向連接的可靠交付的數據傳輸協議,和UDP用戶數據報協議不同的是,它需要建立連接,並且需要無差錯和可靠地交付數據。通過TCP建立連接,需要經過三次握手,關閉TCP連接需要四次揮手。
OSI七層模型中TCP處於的層級位置如圖所示
TCP建立連接是為了可靠地傳輸數據,因此建立過程比較復雜,以確保可靠地傳輸數據。具體流程如下圖所示:
TCP四次揮手
當數據傳輸成功後需要關閉連接,這就是TCP四次揮手。四次揮手比握手還要復雜,具體流程如下圖所示:
在這個過程中,為什麼會涉及到四次揮手呢,這是因為在客戶端發送主動關閉連接請求時,伺服器端收到關閉請求並返回確認收到請求報文,但是伺服器不會立即關閉,因為在這個時間段內可能還會有數據傳送,伺服器端會繼續傳送數據給客戶端,當沒有數據傳送時,伺服器端會主動發送報文給客戶端請求關閉,等待客戶端返回確認時伺服器端就進入了close狀態。
從上面的OSI七層模型中我們可以看到HTTP處於七層協議中的應用層,也就是最接近用戶的一層。它主要是處理WEB數據請求,它是無狀態無連接的協議。無狀態是指上一次傳送的數據是沒有存儲下來的,下一次操作獲取不到上次的數據。無連接是指需要請求數據時才會建立連接,否則處於無連接狀態。在WtEB請求處理過程中,我們主要是關心HTTP請求頭和響應頭還有就是狀態碼.
下面是使用FIDDLER抓包工具抓取的請求包
CONNECT www..com:443 HTTP/1.1
Host: www..com:443
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
人們習慣記憶域名,但機器間互相只認IP地址,域名與IP地址之間是多對多的關系,一個ip地址不一定只對應一個域名,且一個域名可以對應多個ip地址,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。
由於DNS域名解析有些復雜,本文章就不就過多的講解。
總結:以上就是web請求處理中瀏覽器響應的相關知識,由於涉及到的 知識太多因此沒喲很詳細的將解,只將解了部分的重要內容,待到以後學習加深,進一步完善。
H. Web階段——TCP/UDP區別
2018-09-25
全稱:Transmission Control Protocol(傳輸控制協議),是工作在OSI七層模型(Open System Interconnect,開放式系統互聯)中的傳輸層,是一種面向連接的、可靠的、基於位元組流的通信協議。
TCP層將應用層的數據流分成報文段,再繼續向網路層傳輸。為了數據傳輸的可靠性,TCP層將每個報文段進行了編號,用來保證接收端數據的我完整性。
TCP層每傳輸一個報文段,就向接收端發送一次確認信息。在一定時間內,如果接收端沒有返回確認信息,發送端將重新發送丟失的報文。
全稱:User Datagram Protocol(用戶數據報協議),與TCP一樣工作在傳輸層,是一種面向無連接的、不可靠的通信協議。
UDP僅將應用層的數據流分成報文直接進行傳輸,不進行排序。數據安全沒有保障,但操作效率高,適合普通數據傳輸(QQ)。
連接時:
1. 客戶端向伺服器發送一個SYN置位的TCP報文,其中包含連接的初始序列號x和一個窗口大小(表示客戶端上用來存儲從伺服器發送來的傳入段的緩沖區的大小)。
2. 伺服器收到客戶端發送過來的SYN報文後,向客戶端發送一個SYN和ACK都置位的TCP報文,其中包含它選擇的初始序列號y、對客戶端的序列號的確認x+1和一個窗口大小(表示伺服器上用來存儲從客戶端發送來的傳入段的緩沖區的大小)。
3. .客戶端接收到伺服器端返回的SYN+ACK報文後,向伺服器端返回一個確認號y+1和序號x+1的ACK報文,一個標準的TCP連接完成。
#TCP斷開連接四次揮手過程:
1. Client端發起中斷連接請求,也就是發送FIN報文。
2. Server端接到FIN報文後,意思是說"我Client端沒有數據要發給你了",但是如果你還有數據沒有發送完成,則不必急著關閉Socket,可以繼續發送數據。所以你先發送ACK,"告訴Client端,你的請求我收到了,但是我還沒准備好,請繼續你等我的消息"。
3. 這個時候Client端就進入FIN_WAIT狀態,繼續等待Server端的FIN報文。當Server端確定數據已發送完成,則向Client端發送FIN報文,"告訴Client端,好了,我這邊數據發完了,准備好關閉連接了"。
4. Client端收到FIN報文後,"就知道可以關閉連接了,但是他還是不相信網路,怕Server端不知道要關閉,所以發送ACK後進入TIME_WAIT狀態,如果Server端沒有收到ACK則可以重傳。「,Server端收到ACK後,"就知道可以斷開連接了"。Client端等待了2MSL後依然沒有收到回復,則證明Server端已正常關閉,那好,我Client端也可以關閉連接了。Ok,TCP連接就這樣關閉了!
本文來自 tensorzhl 的CSDN 博客 ,全文地址請點擊: https://blog.csdn.net/tensorzhl/article/details/75797364?utm_source=
I. web伺服器和TCP伺服器的問題 是在web中直接架設TCP伺服器 還是建設好TCP伺服器然後和web伺服器通信
描述不夠詳細, 是想用瀏覽器控制硬體?還是監控場景? 如果是控制硬體, 先是電腦與硬體的通信與控制,能夠完成的同時, 基於Web服務進行開發, 如果用CS架構在開發Web服務的時候, 就完成服務控制了.
. 至於TCP伺服器, 你是指客戶端與被控制端的通信么?