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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 前端基础(一) -> 正文阅读

[网络协议]前端基础(一)

一、前端基础

1.HTTP,HTML,浏览器

1.1、说一下http和https

https的SSL加密是在传输层实现的。
(1)http和https的基本概念
http:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是客户端和服务端请求和应答的标准(TCP),用于从www服务器传输超文本到本地浏览器的传输协议,它可以是浏览器更加高效,使网络传输减少。

https:是以安全为目标的http通道,简单的说就是http的安全版,即http下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL。

https协议的主要作用:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。

(2)http和https的区别?
http传输的数据都是未加密的,也就是明文的,网景公司设置了SSL协议来对http协议传输的数据进行加密处理,简单的来说https协议是由http和SSl协议构建的可进行加密传输和身份认证的网络协议,比http协议的安全性更高。
主要区别:

  • https协议需要ca证书,费用较高。
  • http是超文本传输协议,信息是明文传输,https则具有安全性的ssl加密传输协议。
  • 不同的链接方式,端口也不同,一般而言,http协议端口为80,https的端口为443。
  • http链接很简单,是无状态的;https协议是由SSL+http协议构成的可进行加密传输、身份认证的网洛协议,比http协议安全。

(3)https协议的工作原理
客户端在使用https方式与Web服务器通信时有一下几个步骤。

  1. 客户端使用https+url访问服务器,则需要web服务器建立ssl链接。
  2. web服务器接受客户端的请求后,会将网站的证书(证书包含了公钥),返回或者传输给客户端。
  3. 客户端和web服务器端开始协商SSL链接的安全等级,也就是加密等级。
  4. 客户端浏览器通过双方的协商一致的安全等级,建立会话秘钥,然后通过网站的公钥来加密会话秘钥,并传送给网站。
  5. web服务器通过自己的私钥解密出会话秘钥。
  6. web服务器通过会话秘钥加密与客户端之间的通信。

(4)https协议的优点

  • 使用https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  • https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输构成中不被窃取、改变,确保数据的完整性。
  • https是先行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
  • 比起同等http网站,采用https加密的网站在搜索结果中的排名将会更高。

(5)https协议的缺点

  • https握手阶段比较费时,会使页面加载时间延长50%,增加10%·20%的耗电。
  • https缓存不如http高效,会增加数据开销。
  • SSL证书也需要钱,功能越强大的证书费用越高。
  • SSL证书需要绑定IP,不能在同一个ip上绑定多个域名,ipv4资源支持不了这种消耗。

1.2、tcp三次握手

客户端和服务端都需要直到各自可收发,因此需要三次握手。
简化三次握手:
三次握手
图片解析:C发起请求链接S确认,也发起链接C确认
每次握手的作用:
第一次握手:S只可以确认,自己可以接受C发送的报文段
第二次握手:C可以确认S收到了自己发送的报文段,并且可以确认自己可以接受S发送的报文端
第三次握手:S可以确认C收到了自己发送的报文段

1.3、TCP和UDP的区别

  1. TCP是面向链接的,UDP是无连接的即发送数据前不需要先建立链接。
  2. TCP提供可靠的服务。也就是说,通过TCP链接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。并且因为tcp可靠,面向连接,不会丢失数据因此适合大数据量的交换。
  3. TCP是面向字节流,UDP面向报文,并且网络出现拥塞不使得发送率降低(因此会出现丢包,对实时的应用比如IP电话和视频会议等)。
  4. TCP只能是1对1的,UDP支持1对1,1对多。
  5. TCP的首部较大为20字节,而UDP只有8字节。
  6. TCP是面向链接的可靠性传输,而UDP是不可靠的。

1.4、WebSocket的实现和应用

(1)什么是WebSocket?
WebSocket是HTML5中的协议,支持持久连续。http协议不支持持久性连接。HTTP1.0和HTTP1.1都不支持持久性的链接,HTTP1.1中的Keep-alive,将多个http请求合并为1个。
(2)WebSocket是什么样的协议,具体有什么优点?
HTTP的声明周期通过Request来界定,也就是Request一个Response,那么在HTTP1.0协议中,这次HTTP请求就结束了。在HTTP1.1中进行了改进,是有一个connection:keep-alive,也就是说,在一个http连接中,可以发送多个Request,接受多个Response。但是,在http中一个Request只能对应一个Response,而且这个Response是被动的,不能主动发起。

WebSocket是基于HTTP协议的,或者说借用了HTTP协议完成了一部分握手,在握手阶段与http是相同的。
我们来看一个WebSocket协议的实现,基本是2个属性,upgrade,connection。
基本请求如下:

GET /chat HTTP/1、1
Host: server. examp1e.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-webSocket-Protoco1: chat,superchat
Sec-WebSocket-Version: 13
Origin: http: //examp1e.com
多了下面2个属性:
Upgrade: webSocket
Connection: Upgrade
告诉服务器发送的是websocket
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
sec-WebSocket-Protoco1 : chat,superchat
Sec-WebSocket-Version: 13

1.5、HTTP请求的方式,HEAD方式

head:类似于get请求,只不过返回的响应中没有具体的内容,用户获取报头。
options:允许客户端查看服务器的性能,比如说服务器支持的请求方式等等。

1.6、一个图片url访问后直接下载怎样实现?

请求的返回头里面,用于浏览器解析的重要参数就是OSS的API文档里面的返回http头,决定用户下载行为参数。
下载的情况:

1、x-oss-object-type:
	Norma1
2、x-oss-request-id:
	598D5ED34F29DO1FE2925F41
3、x-oss-storage-c1ass:
	Standard

1.7、说一下web Quality(无障碍)

能够被残障人士使用的网站才能称得上一个易用(易访问的)网站。

例如:
使用alt属性:
<img src="preson.jpg" alt="this is person" />
有时候浏览器会无法显示图像。
具体原因有:

  • 用户关闭图像显示
  • 浏览器不支持图像显示的迷你浏览器
  • 浏览器是语音浏览器(供盲人和弱视人群使用)

使用alt属性,那么浏览器至少可以显示或读出有关图像的描述。

1.8、几个实用的BOM属性对象方法?

什么是BOM?BOM是浏览器对象。
(1)location对象

  • location.href–返回或设置当前文档的URL
  • location.search – 返回URL中的查询字符串部分。例如http: //www.dreamdu.com/dreamdu. php?id=5&name=dreamdu返回包括(?)后面的内容?id=5&name=dreamdu
  • location.hash --返回URL#后面的内容,如果没有#,返回空location.host --返回URL中的域名部分,例如 www. dreamdu.comlocation.hostname --返回URL中的主域名部分,例如 dreamdu.com
  • location.pathname --返回URL的域名后的部分。例如 http://www. dreamdu.com/xhtml/返回/xhtml/
  • location. port --返回URL中的端口部分。例如 http://www. dreamdu.com:8080/xhtml/返回8080
  • location.protocol – 返回URL中的协议部分。例如http: / / www.dreamdu.com:8080/xhtml/返回(//)前面的内容http:location.assign --设置当前文档的URL
  • location.replace() --设置当前文档的URL,并且在history对象的地址列表中移除这个URL
  • location.replace(url);
  • location.reload() --重载当前页面

(2)history对象

  • history.go() – 前进或后退指定的页面树history.go(num);
  • history.back()–后退一页
  • history.forward()–前进一页

(3)Navigator对象

  • navigator.userAgent – 返回用户代理头的字符串表示(就是包括浏览器版本信息等的字符串)
  • navigator.cookieEnabled – 返回浏览器是否支持(启用)cookie

1.9、说一下HTML5 drag api

  • dragstart:事件主体是被拖放元素,在开始拖放被拖放元素时触发。
  • darg:事件主体是被拖放元素,在正在元素拖放被拖放元素时触发。
  • dragenter: 事件主体是目标元素,在被拖放元素进入某元素时触发。
  • dragover: 事件主体是目标元素,在被拖放在某元素内移动时触发。
  • dragleave: 事件主体是目标元素,在被拖放元素移出目标元素是触发。
  • drop: 事件主体是目标元素,在目标元素完全接受被拖放元素时触发。
  • dragend: 事件主体是被拖放元素,在整个拖放操作结束时触发
    实例代码:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>拖动一张图片到浏览器中</title>
    <style>
        body{
            text-align: center;
        }
        #container {
            border: 1px solid #aaa;
            border-radius: 3px;
            padding: 10px;
            margin: 10px;
            min-height: 400px;
        }
    </style>
</head>
<body>

<h1>拖放API的扩展知识</h1>
<h3>请拖动您的照片到下方方框区域</h3>
<div id="container"></div>

<script>
    var container = document.getElementById('container')
   document.ondragover = function(e){
       e.preventDefault()
   }
   document.ondrop = function(e){
       e.preventDefault()
   }
   container.ondragover = function(e){
       e.preventDefault()
   }
   container.ondrop = function(e){
        var paper = e.dataTransfer.files[0];
        var file = new FileReader();
        file.readAsDataURL(paper)
       file.onload = function(){
            console.log('读取文件完成')
           console.log(file.result)
           var img = new Image();
            img.src =file.result;
            container.appendChild(img)
       }
   }
</script>
</body>
</html>
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:36:22  更:2021-09-18 10:36:42 
 
开发: 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/26 0:48:21-

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