客户端(Client):
或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在客户机和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
服务器端(Server):
是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据等等.客户端可以是任意的一台电脑,只要它和服务器端存在连接,并且得到了服务器端的授权,就可以使用服务器端的服务.象现在就可以理解为百度的网站是服务器端,我们现在使用的电脑就是客户端.我们可以使用它的服务.通常的服务器端都是服务器级的高级PC,以便多客户访问时不会造成延时甚至数据溢出。
Http协议:全称HyperText Transfer Protocol(超文本传输协议)
TCP协议:传输控制协议
URL解析的组成部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符
2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用
3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口
4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”
5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分
7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
从服务器获取数据:
1.实例化一个URL对象
2.获取HttpURLConnection对象
3.设置请求连接属性
4.获取响应码,判断连接结果码
5.读取输入流并解析
用法 | 安全(传输) | 安全(本质上) | 幂等性 | 可缓存 | |
GET | 获取数据 | × | √ | √ | √ |
POST | 提交数据 | √ | × | × | × |
Java.net包中的URL类是用来管理网址的,HttpURLConnection用来管理网络连接,InetAddress用来操作IP地址
API 28(Android 9.0)新特性:
1. 9.0对http请求的限制
步骤:1.创建安全配置文件
①在res文件夹下创建xml/network_security_config文件
右键res--->New--->Directory--->创建xml--->右键xml--->XML resource file在其中创建network_security_config文件
②增加cleartextTrafficPermitted属性
2.添加安全配置文件
①AndroidManifest.xml中的Application申明