1. 程式人生 > >Socket程式設計之實現瀏覽器與Socket的互動

Socket程式設計之實現瀏覽器與Socket的互動

我們只瀏覽器發起一個http請求,後臺對應服務會接收並且處理該請求。

那麼它是怎麼實現的呢?也就是底層原理是什麼?

我們都知道http協議的底層是基於TCP/IP協議的,

而TCP/IP協議的實現形式就是Socket。

所以理論上,後臺寫一個Socket服務端是可以和瀏覽器互動的,

而http請求是有固定的格式的,傳送請求會發送一個請求頭訊息,還有一些請求引數之類的,

當然這些工作瀏覽器幫我們做了。

這裡我們寫一個Socket服務端實現與瀏覽器的互動。

直接看程式碼

public static void main(String[] args) throws Exception{
	
ServerSocket server = new ServerSocket(9898); while(true){ Socket socket = server.accept(); InputStreamReader r = new InputStreamReader(socket.getInputStream()); BufferedReader br = new BufferedReader(r); String readLine = br.readLine(); while(readLine != null && !readLine.equals("")){
System.out.println("獲取到資料:" + readLine); readLine = br.readLine(); } String html = "http/1.1 200 ok\n"                 +"\n\n"                 +"1234服務端。。。。"; PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println(html); pw.close(); } }

這裡:html是拼接的,包括響應頭訊息+響應體,

瀏覽器是按照這個來解析的。

瀏覽器中輸入:http://localhost:9898/


搞定。