IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 计算机网络--应用层Web简单介绍 -> 正文阅读

[系统运维]计算机网络--应用层Web简单介绍

计算机网络养成:第六天

Java(打卡第62天)


学习内容

计算机网络----应用层


首先表明一下,我使用的是《计算机网络第7版–自顶向下方法》Kurouse , 我主要是先说明基础的知识,尽量表述的通俗易懂,并且内容很基础,才疏学浅,如果没有帮助到你,我很抱歉,一起学习~一起加油 ~

网络已经有很长时间没有更新了,原因也提到过,但是网络基本的概念,前面已经讲到了的,像基本的protocol,service,还有检查连接的cmd命令transert,前面已经从整体上对网络进行分析,介绍了接入网,核心,边缘,介绍了protcol模型,service,peer,接下来就是自顶向下分析计算机网络,所以最先分析应用层,之前已经大概介绍了应用层的大概,接下来详细分析

Web and HTTP

之前大概介绍了应用层的message交互是要使用传输层的socket接口,socket就是一个整数包含可IP和port等信息,表示当前主机与目标主机的会话关系,而且这个socket只是本地的代号;在OSI模型中,在传输层和应用层之间还有会话层和表示层,但是由于其包容性不好,普遍采用的还是五层的网络结构。传输层提供的service主要又UDP和TCP两种,主要区别就是是否面向连接。关于安全TCP,即在TCP上加载SSL,在网络安全章节详细介绍

那么昨天也提过web,web就是一种应用,而Http就是支持web的协议,那么先来简单看一下web

  • web页 :由一些对象组成,对象可以是HTML文件,JPEG图像,Java小程序,声音剪辑文件等,HTML文件本身只是一个空的网页,所以上面的图像之类的还要再次又HTML提供链接访问
  • Web页含有一个基本的HTML文件,该基本HTML文件又包含若干对象的引用
  • 通过URL对每一个对象进行引用,通过协议,用户名,口令,端口等

所以HTML网页中包含了很多URL,客户端访问时,HTML将网页再客户端上面画出来,通过URL链接再将网页上的各种文件画出来,对象指对象,所以非常复杂

URL (Uniform Resource Locator)统一资源定位符

URL是统一资源定位符,对可以从互联网得到的资源的位置和访问方法的一种简洁的表示,是互联网的标准资源地址,每一个文件都有一个唯一的URL。

URL的格式

【协议名】prot : //【用户】user : 【口令】psw&【主机名】www.someSchool.edu /【路径名】someDept/pic.gif【文件名】:port【端口】

比如给一个例子,打开哔哩哔哩网页

https://www.bilibili.com/video/BV1JV411t7ow?p=14

https是协议,之后是主机名,路径和端口号【这里是匿名访问,没有用户口令】

在之前的小欢聊天室中就已经使用过URL,当时是用URL来加载图片,加载图片还有另外的方式

Image icon = getImage("icon.gif");

Image getImage(String filename) {
		URLClassLoader urLoader = (URLClassLoader)this.getClass().getClassLoader();//类加载
		URL url = null;
		Image image = null;
		url = urLoader.findResource(filename);
		image = Toolkit.getDefaultToolkit().getImage(filename);
		MediaTracker mediatracker = new MediaTracker(this);
		try {
			mediatracker.addImage(image, 0);
			mediatracker.waitForID(0);
		}catch(InterruptedException e) {
			image = null; //线程中断就没有
		}
		if(mediatracker.isErrorID(0)) {
			image = null;
		}
		return image;
	}
//这里就是使用了URL来加载图像文件

可以直接使用BufferedImage 定义之后,使用ImageIO的read方法,传入类的字节码文件getResource方法,就可以获取到导入到包中的图片

这里可以使用java的URL类来看一下URL

try {
			URL url = new URL("https://www.bilibili.com/video/BV1JV411t7ow?p=14");
			System.out.println("URL是" + url.toString());
			System.out.println("协议是" + url.getProtocol());
			System.out.println("DNS主机名是" + url.getAuthority());//authroity,获取服务器的域名系统DNS主机名或者IP地址和端口号
			System.out.println("query查询是" + url.getQuery());//query查询
			System.out.println("用户info是" + url.getUserInfo());  //用户的info,命令,这里为匿名访问,为null
			System.out.println("ref是" + url.getRef());
			System.out.println("文件是" + url.getFile());
			System.out.println("路径是" + url.getPath());
			System.out.println("主机是" + url.getHost());
			System.out.println("端口号是" + url.getPort());
			System.out.println("默认端口号是" + url.getDefaultPort());
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}

URL是https://www.bilibili.com/video/BV1JV411t7ow?p=14
协议是https
DNS主机名是www.bilibili.com
query查询是p=14
用户info是null
ref是null
文件是/video/BV1JV411t7ow?p=14
路径是/video/BV1JV411t7ow
主机是www.bilibili.com
端口号是-1
默认端口号是443

这里就可以清楚看到该网址的各个部分,是没有用户口令的,并且最后的p = 14是查询query

HTTP概况【hype text transpot protocol】超文本传输协议

HTTP :超文本传输协议

  • Web的应用层协议
  • 使用了客户/服务器模式 ----- 客户 : 请求,接收和显示Web对象的浏览器 ; 服务器 ---- 对请求进行响应,发送对象的Web服务器
  • HTTP 1.0 :RFC 1945
  • HTTP 1.1 : RFC 2068

HTTP使用的是TCP service,服务过程:

  • 客户端发起一个与服务器的TCP连接(建立套接字)端口号为80
  • 服务器接收客户的TCP连接

比如原来的服务器端口是80,那么最初由一个等待建立连接的wait socket,s1,当来了一个客户端的连接请求,就会产生一个socket来表示两者的连接关系,java中就是socket.accept方法,有新的socket连接,就会建立新的socket来指代

  • 在浏览器(HTTP客户端)与Web服务器(HTTP服务器server)交换HTTP报文(应用层协议报文)
  • TCP连接关闭

HTTP是无状态的

服务器并不维护关于客户的任何信息

因为维护状态的协议很复杂【必须维护历史信息(状态),如果服务端/客户端死机,它们的状态信息可能不一样,二者的信息是必须一致的】无状态的服务器能过支持更多的客户端

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 13:06:47  更:2021-11-11 13:07:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:43:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码