【网络】网络基础

文章目录

1.硬件地址

MAC地址是网卡决定的,是固定的。MAC地址就如同我们身份证上的身份证号码

2.域名

一个域名对应一个IP地址,一个IP地址可以对应多个域名;所以多个域名可以同时被解析到一个IP地址。域名解析需要由专门的域名解析服务器(DNS)来完成。

3.私有IP地址

私有IP就是在本地局域网上的IP 与之对应的是公有IP(在互联网上的IP)。

  • 10.0.0.0~10.255.255.255 即10.0.0.0/8
  • 172.16.0.0~172.31.255.255即172.16.0.0/12
  • 192.168.0.0~192.168.255.255 即192.168.0.0/16
4.判断是否属于同一个子网

若子网掩码为255.255.255.192

换算成2进制:
11111111.11111111.11111111.11000000

第一组:
156.26.101.88和156.26.101.132
二级制分别是:
10011100.00011010.01100101.01011000
10011100.00011010.01100101.10000100
和子网掩码AND运算,前面肯定一样,第四段不同

第二组:
156.26.27.71和156.26.27.110
二级制分别是:
10011100.00011010.00011011.01000111
10011100.00011010.00011011.01101110
和子网掩码AND运算,只看第四段:
01000000
01000000 完全相同,所以是一个子网

5.URL构成
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
  • ⑴协议部分 http
  • ⑵域名部分 www.aspxfans.com
  • ⑶端口(非必须,没有则使用默认) 8080
  • ⑷虚拟目录部分(非必须) 从第一个/到最后一个/ 这里是/news/
  • ⑸文件名部分(非必须) 从最后一个/到? 这里是index.asp
  • ⑹锚部分(非必须) :从“#”开始到最后,都是锚部分。这里是name
  • ⑺参数部分:从“?”开始到“#”为止之间的部分为参数部分,这里是boardID=5&ID=24618&page=1**
6.cookie和session的区别
  • ①cookie数据存放在客户的浏览器上,session数据放在服务器上,cookie中存有sessionid
  • ②cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
    考虑到安全应当使用session。
  • ③session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
    考虑到减轻服务器性能方面,应当使用COOKIE。
  • ④单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
  • ⑤所以个人建议:将登陆信息等重要信息存放为SESSION
7.OSI,TCP/IP,五层协议的体系结构,以及各层协议

在这里插入图片描述

⑴应用层

应用层是我们经常接触使用的部分

⑵传输层

传输层的作用就是将应用层的数据进行传输转运

⑶网络层

网络层用来处理网络中流动的数据包,数据包为最小的传递单位

⑷数据链路层

数据链路层一般用来处理连接硬件的部分

⑸物理层

物理层一般为负责数据传输的硬件,比如我们了解的双绞线电缆、无线、光纤等。比特流光电等信号发送接收数据。

8.HTTP常用动词
  • GET (选择):从服务器上获取一个具体的资源或者一个资源列表。幂等
  • POST (创建): 在服务器上创建一个新的资源。非幂等
  • PUT (更新):以整体的方式更新服务器上的一个资源。幂等
  • PATCH (更新):只更新服务器上一个资源的一个属性。和PUT非常类似。非幂等
  • DELETE (删除):删除服务器上的一个资源。幂等
9.ARP和RARP

ARP协议就是将IP地址转换为MAC物理地址
RARP协议就是将MAC物理地址转换为IP地址

10.DNS域名解析失败
原因
  • 网络不可用(少见)
  • 域名劫持(少见)
  • 域名解析被禁止,用whois工具检查域名状态。
  • 各项记录及缓存更新是否生效
解决方法
  • 1、HTTPDNS解决法
    HTTPDNS解决法即使用HTTP协议进行域名解析,域名解析请求直接发送到HTTPDNS服务器而不经过运营商,这种方法不仅能解决dns域名解析失败的问题,并且还能提高解析效率。
  • 2、公共DNS解决法
    虽然有部分厂商提供dns解决法,但是这种方法通用型很低,对于开发者来言实施难度也很大。
  • 3、通过客户端自身解决(重点)
    如果是客户自身由于缓存不能更新的,可以通过dos命令来执行强制刷新解析结果。例如windows系统可以执行ipconfig/flushdns命令清空DNS缓存。
11.URL从输入到渲染全过程
⑴ 概述
  • DNS解析
  • 与服务器建立连接
  • 服务器处理并返回http报文
  • 浏览器解析渲染页面
⑵ DNS解析

实现了网址到IP地址的转换。
DNS解析通常会经过以下几个过程:

  • 浏览器缓存
  • 系统缓存
  • 路由器缓存
  • ISP DNS缓存
  • 都没有找到,则向根域名服务器查找域名对应IP,根域名服务器吧请求转发到下一级查找IP。比如www.baidu.com的查找顺序是:
    根域名服务器(.)-> .com -> .baidu.com -> www.baidu.com
⑶ 建立连接

俗称三次握手

⑷ 服务端处理并返回http报文
  • 浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等
  • 服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 HTML 文件
  • 服务器将处理结果HTML 文件发送给浏览器
⑸ 浏览器解析渲染页面
  • 浏览器拿到HTML文件后,根据渲染规则进行渲染:
  • 解析HTML,构建DOM树
  • 解析CSS,生成CSS规则树
  • 合并DOM树和CSS规则树,生成render树
  • 布局render树
  • 绘制render数、树,即绘制页面像素信息
  • GPU将各层合成,结果呈现在浏览器窗口中。
12.socket通讯

在这里插入图片描述

⑴基本步骤
  • 创建sockethe和ServiceSocket
  • 打开socket输入输出流
  • 按照协议对socket进行读写操作
  • 关闭输入输出流,关闭socket
⑵基于TCP的socket编程
  • service端
    • 创建ServiceSocket对象,绑定端口 ServerSocket(int port)
    • 通过accept()方法监听客户请求
    • 通过输入流读取客户端发送的信息
    • 通过输出流向客户端发送响应信息
  • client端
    • 创建socket对象,需要指明连接的服务器地址和端口号 Socket(InetAddress address , int port)
    • 建立连接后,通过输出流向服务器端发送请求信息
    • 通过输入流获取服务器端响应的信息
    • 关闭资源
⑶基于UDP的socket编程
  • service端
    • 创建DatagramSocket 同时指定端口号
    • 建DatagramPacket 用来接收客户端发送来的数据
    • 接受客户端发送的数据信息
    • 读取数据
  • client端
    • 定义发送信息
    • 创建DatagramPacket,包含将要发送的信息
    • 创建DatagramSocket
    • 发送数据
13.对称加密非对称加密
⑴对称加密

对称加密的基本思想是: 通信双方使用同一个密钥(或者是两个可以简单地互相推算的密钥)来对明文进行加密与解密
常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6
对称加密看起来很美好,但是密钥要怎么发送过去呢?如果直接发送过去,被中间人截获了密钥岂不是白费工夫

⑵非对称加密

使用了两个密钥,一个为公钥,一个为私钥,公开其中一个密钥(也就是公钥),不公开的密钥为私钥
常见的非对称加密算法有RSA、DSA、ECDSA、 DH、ECDHE
它的效率有点低

⑶对称加密+非对称加密

将对称加密与非对称加密结合起来,其中一方先自己生成一个对称加密密钥,然后通过非对称加密的方式来发送这个密钥,这样双方之后的通信就可以用对称加密这种高效率的算法进行加解密了.

14.HTTP
⑴概述

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议

⑵HTTP工作过程

在这里插入图片描述

⑶HTTP特点
  • 无状态,但是很多业务都需要对通信状态进行保存,于是我们引入了 Cookie 技术
  • 使用 Cookie 的状态管理,Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存Cookie。
  • 长连接 HTTP/1.1 和部分 HTTP/1.0 想出了持久连接的方法,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。在 HTTP/1.1 中,所有的连接默认都是持久连接
  • 管线化 能做到同时并行发送多个请求
⑷发展过程
  • HTTP0.9
    • 仅支持GET
    • 相应仅支持超文本,响应后马上结束的连接
    • 没有 HTTP headers (无法传输其他内容类型的文件), 没有 status/error 代码, 没有 URLs, 没有版本控制
  • HTTP1.0的改进
    • 支持的方法:GET HESD POST
    • 响应:不再只限于超文本 (Content-Type 头部提供了传输 HTML 之外文件的能力 — 如脚本、样式或媒体文件)
    • 提供了对请求和响应都包含丰富元数据的 header 域 (HTTP 版本号、status code 和 content type)
    • HTTP1.0默认是短连接
  • HTTP1.1的改进(当前普遍使用的版本)
    • 支持的方法: GET , HEAD , POST , PUT , DELETE , TRACE , OPTIONS
    • 默认值长连接
    • 进行了重大的性能优化和特性增强,分块传输、压缩/解压等
    • 引入更多缓存机制
    • 增加了错误状态码
    • 在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值