Common client and server side
Client:
Browser: IE: Pop-up window, Cheetah: Pop-up window, multi-tab, gaining effect
Service side:
Server: tomcat:1. Processing request 2. Give answer
To get Tomcat to work for us, the related class classes written by Java must implement Interface Serverlet
The power of the browser lies in the analytic ability, many formats, can be resolved
Service side and Client principle
Custom Service side:
public static void Main (string[] args) throws IOException {ServerSocket ss = new ServerSocket (9090);//tomcat is 8080Socket so Cket = Ss.accept (); InputStream in = Socket.getinputstream (); System.out.println ("IP:" +socket.getinetaddress (). gethostaddress ()); byte[] buf = new Byte[1024];int len = In.read (BUF) ; String text = new string (Buf,0,len); System.out.println (text); PrintWriter out = new PrintWriter (Socket.getoutputstream (), true); Out.println ("Hello"); Socket.close (); Ss.close ();}
Use existing client IE to understand what requests the client sends to the server?
Request Line: Request Method /1.html Request Resource path: HTTP protocol version
Request message Header: Property Name: Property value
Request Body
Simulate a browser to get information
public static void Main (string[] args) throws IOException {socket s = new socket ("192.168.1.1", 8080);//access to Tomcat, browser information pri Ntwriter out = new PrintWriter (S.getoutputstream (), true); Out.println ("Get/http/..."); Out.println ("...."); O Ut.println ("...."); Out.println ("..."); Out.println ("..."); Out.println ("...."); InputStream in = S.getinputstream ( ); byte[] buf = new Byte[1024];int len = In.read (BUF); String line = new string (Buf,0,len); System.out.println (line);//Get is the local write HTML code s.close ();}
The resulting response:
Answer line: Protocol version of HTTP answer status code answer status description information
The reply message property. Property Name: Property value
Answer body:-> The above HTML source code
PS: The browser is too difficult to write, so many vendors are the application of the original IE kernel
Class URL
Class URL
represents a Uniform resource locator, which is a pointer to the Internet "resource". A resource can be a simple file or directory, or a reference to a more complex object, such as a query to a database or search engine
Each URL is a URI, but not every URI is a URL
public static void Url_demo () throws malformedurlexception {String strURL = "Http://127.0.0.1:8080/myhtml/1.html?name= Wang ";//http://www.baidu.com/baidu?word=java, in the Baidu Address bar search javaurl url = new URL (strurl); System.out.println ("Protocol:" +url.getprotocol ());//Get Host Protocol System.out.println ("host:" +url.gethost ());// Gets the hostname System.out.println ("Port:" +url.getport ());//Gets the port System.out.println ("File:" +url.getfile ());// Gets the file System.out.println ("Path:" +url.getpath ());//Gets the path part System.out.println ("Query:" +url.getquery ());//Get Query part}
Protocol:http
host:127.0.0.1
port:8080
File:/myhtml/1.html?name=wang
Path:/myhtml/1.html
Query:name=wang
public static void Url_demo () throws IOException {String strURL = "Http://127.0.0.1:8080/myhtml/1.html?name=wang"; URL url = new URL (strurl); InputStream in = Url.openstream ();//Opens a connection to this URL and returns a inputstream that is used to read from the connection. /* * Principle: * OpenConnection () * Returns a URLConnection object that represents the connection to the remote object referenced by the URL. * URLConnection conn = url.openconnection (); * SYSTEM.OUT.PRINTLN (connection); * The bottom of the package is the HTTP parsing method of the URL, this object is the Java built-in can resolve the specific protocol object +socket * URLConnection class * 1.String str = Conn.getheaderfield (" Contend-type "); * SYSTEM.OUT.PRINTLN (str);//reply to a text type of message * then you can determine the type of text according to the result of the answer, according to the specified parser, parsing the data * is actually using the socket, plus protocol * 2.InputStream in = Conn. getInputStream (); also get 1.html response body * * So the principle of Url.openstream () is: * URLConnection conn = url.openconnection (); * InputStream in = conn. getInputStream (); */byte[] buf = new Byte[1024];int len = In.read (BUF); String str = new string (Buf,0,len); System.out.println (str);//Get 1.html response body, URL Help parse into HTML source in.close ();}
Common network Architectures
1.C/S: Client/server (client, server)
Early:
Vc++,vb are all doing C/s
Characteristics:
The structure of the software, the client and the service side need to write, development costs high, maintenance trouble
Benefits:
A client can share a subset of operations locally. 360 anti-virus, game 3D effect are all in the local operation
2.b/s: Brows er/server (browser, server)
Characteristics:
The structure of the software, only the development of the server, the client is directly replaced by the browser
Relatively low development costs and easier maintenance
Disadvantage: All operations are in the server
Java Learning lesson 63rd-About client server && URL classes & URLConnection