JAVA学习第六十三课 — 关于client服务端 amp;amp; URL类 amp; URLConnection
常见的client和服务端
client:
浏览器:IE:弹窗体,猎豹:弹窗体。多标签,争强效果
服务端:
server:TomCat:1.处理请求 2.给予应答
想让TomCat为我们工作。那么java写的相关类类必须实现interface Serverlet
浏览器强大之处就在于解析能力,众多格式,都能够解析
服务端和client原理
自己定义服务端:
public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(9090);//Tomcat是8080Socket socket = 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("你好");socket.close();ss.close();}
使用已有的clientIE,了解client给服务端发送的什么请求?
请求行: 请求方式 /1.html 请求资源路径:http协议版本号
请求消息头:属性名:属性值
请求体
模拟一个浏览器获取信息
public static void main(String[] args) throws IOException {Socket s = new Socket("192.168.1.1",8080);//向tomcat获取。浏览器信息PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("GET / HTTP /.....");out.println("....");out.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);//得到就是本地写的html代码s.close();}
得到的应答:
应答行:http的协议版本号 应答状态码 应答状态描写叙述信息
应答消息属性。 属性名: 属性值
应答体:->上述的html源代码
PS:浏览器太难写了,所以众多厂商都是应用原有的IE的内核
类URL
类 URL
代表一个统一资源定位符,它是指向互联网“资源”的指针。
资源能够是简单的文件或文件夹,也能够是对更为复杂的对象的引用。比如对数据库或搜索引擎的查询
每一个URL都是URI,但不是每一个URI都是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,在百度地址栏搜索java URL url = new URL(strurl); System.out.println("Protocol:"+url.getProtocol());//获取主机协议 System.out.println("Host:"+url.getHost());//获取主机名 System.out.println("Port:"+url.getPort());//获取port System.out.println("File:"+url.getFile());//获取文件 System.out.println("Path:"+url.getPath());//获取路径部分 System.out.println("Query:"+url.getQuery());//获取查询部分 }
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();//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 /* * 原理: * openConnection() * 返回一个 URLConnection 对象。它表示到 URL 所引用的远程对象的连接。
* URLConnection conn = url.openConnection(); * System.out.println(connection); * 底层封装完了关于url的http的解析方式。这个对象就是java内置的能够解析详细协议的对象+socket * URLConnection类中 * 1.String str = conn.getHeaderField("Contend-Type"); * System.out.println(str);//应答一个文本类型的消息 * 然后就能够依据应答的结果。推断文本是何类型,依据指定的解析器,解析数据 * 实际上用的是Socket,加协议 * 2.InputStream in = conn.GetInputStream();相同得到1.html的应答体 * * 所以url.openStream()的原理就是: * 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);//得到1.html的应答体,url帮助解析成html源代码 in.close(); }
常见的网络架构
1.C/S: client / server (客户端。服务端)
早期:
VC++,VB都是做C/S
特点:
该结构的软件,client和服务端都须要编写,开发成本高。维护麻烦
优点:
client在本地能够分担一部分运算。360杀毒,游戏的3D效果都是在本地运算
2.B/S :browser / server(浏览器,服务端)
特点:
该结构的软件,仅仅开发服务端,client直接由浏览器取代
开发成本相对低。维护更为简单
缺点:全部运算都是在server
转载于:https://www.cnblogs.com/lxjshuju/p/6826292.html
JAVA学习第六十三课 — 关于client服务端 amp;amp; URL类 amp; URLConnection相关推荐
- JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同
JavaScript学习(六十三)-typeof和instanceof检测数据类型的异同 一.JavaScript中的数据类型 在JavaScript中,我们把数据可以分为原始类型和引用数据类型. 原 ...
- Java学习笔记 六、面向对象编程中级部分
Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...
- java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署
java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署 java毕业设计儿童疫苗接种提醒系统小程序服务端Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构 ...
- java自动化测试成长日记-之CVS客户端和服务端安装和部署1:CVS服务端的配置和基本使用...
CVS服务端的配置和基本使用 在做java自动化测试集成环境搭建的时候,无论怎样,你都会选择一个源代码管理工具,如:SVN,CVS,VSS等:但如果你使用Eclipse工具,建议你使用CVS源代码管理 ...
- Java IOS客户端上传多张图片到服务端
Java IOS客户端上传多张图片到服务端 业务场景:用户相册需要上传多张图片到服务器,上限为12张.本文主要介绍Java服务端的文件和流的处理. 下图为iOS端和服务端最终结果一览. iOS端 : ...
- java程序编六角星_跨平台移动端解决方案—Weex
跨端方案背景 一 1 起因 由于客户端Webview内嵌H5的各种受限,例如性能差.JS执行效率低以及伴随着大量的机型兼容问题,于是有了各种混合跨端开发解决方案:Hybrid.React-Native ...
- java web启动socket_javaweb启动时启动socket服务端代码实现
这篇文章主要介绍了javaweb启动时启动socket服务端代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 说明:在javaweb项目启动的 ...
- ESP32学习笔记(30)——BLE GATT服务端自定义服务和特征
一.简介 1.1 低功耗蓝牙(BLE)协议栈 链路层(LL) 控制设备的射频状态,有五个设备状态:待机.广播.扫描.初始化和连接. 广播 为广播数据包,而 扫描 则是监听广播. GAP通信中角色,中心 ...
- Java程序中Socket(关于客户端和服务端实例)
例如:客户端将d:\1.jpg图片文件上传给服务端,服务端收到后保存到d:\java\a.jpg,服务器端接收完成后,发送"上传成功"回应客户端. 一:客户端实现 package ...
- java大话西游单机版,【大话西游】手工架设服务端+双客户端+加密解密全套工具...
[大话西游]手工架设服务端+双客户端+加密解密全套工具_站长网(Downzz.com) 安装说明: 服务器系统 Windows Server 2008 R2 1.首先第一步把需要的运行工具以及所需工具 ...
最新文章
- 【Vegas原创】“無法解析 equal to 動作的定序衝突”错误的处理
- 解决Oracle jdbc驱动包maven下载失败问题
- iOS 13 真机调试包
- 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)
- C语言 函数指针 - C语言零基础入门教程
- 填涂颜色(洛谷-P1162)
- [译转] eBPF 概念和基本原理
- 结对-贪吃蛇游戏-需求分析
- Spring 通知和顾问进行增强
- Your port 80 is actually used by : Server: Microsoft-IIS/10.0 Cannot install the Apache service, p
- JS设计模式 - 单例模式
- P0 口输出级具有能带 8个 LSTTL 门负载能力(指每个端口线例如P0.0P0.1每条位线,而不是整个P0口反证P2地址高8位,如果只能带4个怎么用)这个是门电路的扇出系数也就扇出带门负载能力
- 智能快递柜 软件架构 linux,13.智能快递柜(对接流程)
- springboot整合mybatis,使用逆向工程和使用通用mapper的方式
- 自己动手搭建网站:域名和云服务器选购
- 简述raid 0 1 5 10的区别
- openCV ROI
- 英文简历格式(吴军个人网页)
- 抵抗勒索病毒的正确姿势——不要上来就封端口!
- SaaSBase:最受欢迎的ERP软件有哪些
热门文章
- java排序方式(冒泡,选择,JDK)
- JavaScript 页面刷新方式汇总
- Java SE 基础:List 集合列表
- 项目太大 传不到服务器,上传大文件的解决方案
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_4_练习_递归打印多级目录...
- web-4. 装饰页面的图像
- Hibernate(六):映射一对多关联关系、双向一对多映射
- 给你的应用“一只”智慧的眼睛 —— Barcode常识普及以及识别信息处理
- 获得select下拉框的值
- 【2012.1.24更新】不要再在网上搜索eclipse的汉化包了!