当前位置:首页 » 网页前端 » http原理前端
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

http原理前端

发布时间: 2023-03-30 12:11:49

⑴ web前端开发是先学HTTP协议还是先学习语言和服

第一步:学习HTML和

HTML(超文本标记语言)是网页的核心,学好HTML是成为Web开发人员的基本条件。HTML很容易学习的,但也很容易误用,要学精还得费点功夫。

随着HTML5的发展和普及,了解HTML5也将成为Web开发人员的必修课。

涉及到网页外观时,就需要学习CSS了,它可以帮你把网页做得更美观。

利用HTML和CSS模拟一些你所见过的网站的排版和布局(色彩,图片,文字样式等等)。

第二步:学习javascript,了解

JavaScript是一种能让你的网页更加生动活泼的程序语言。学习JavaScript的基本语法,学会用javascript操作网页中dom元素。

接着学习使用一些javascript库,比如jquery是大部分WEB开发人员都喜欢用的,通过Jquery可以有效的提高JavaScript的开发效率。

第三步:了解Web服务器

你不必在这上面花太多精力,但对IIS、Apache基本配置要掌握,这方面的知识学起来也相对容易,不会花多长时间。

学习一点Unix和Linux的基本知识渗丛,因为大部分Web服务器都运行在Unix和Linux平台上。

第四步: 学好一门服务器端脚本语言

服务器端脚本编程(后台开发)也是Web开发人员的基本功之一,你只需挑选一个服务器端脚本语言,然后学好它。

目前流行的服务器脚本语言有:php、asp.net、jsp、ruby、python、等。

第五步:学习数据库sql语法

要构建动态页面通常会使用到数据库,常用的数据库有SQLServer、Oracle、MySQL 等,它们都会遵循标准的SQL原则。

通常asp.net 程序使用SqlServer数据库,PHP、java使用Oracle、MySQL数据库。

第六步:综合实战

选一个你喜欢的后台丛埋樱编程语言,结合之前学到的html,css,javascript 前端技术,实现一个简单的留言本、论坛程序、进而实现一个简单的CMS(内容管理系统)第七步:学习使用Web框架

当你掌握了HTML,CSS,JavaScript和服务器端脚本语言后,就应该找一个Web框架加液晌快你的Web开发速度,使用框架可以节约你很多时间。

比如.net的MVC,JAVA 的SSH,php的cakephp、CodeIgniter、zend,ruby的ROR,python的dijango等等,其实里面都有一些相通之处。

整个开发过程你还可能会学习到一些工具的使用:

Visio,Dreamweaver,Vistual Studio、elipse、(Vim, EditPlus, Notpad++)、sqlserver、phpmyadmin,各种浏览器以及FireBug的插件,IE下的WebDevelopmentHelper、IETester等。如果你足够用心,你还发掘出很多不错的资源,例如MSDN,W3cSchool,一些前辈的博客,一些技术论坛等等,这都是你未来前进道路上的财富。如还想深入研究,学学http协议,理解什么是无状态,不然你永远做不好WEB开发,研究web程序服务端运行原理,还有tcp/ip,udp协议等。

⑵ 前端http请求细节——Cache-Control(缓存机制)

请求和响应中的 Cache-Control 指令并不完全相同,具体可以查看 这里 ,包括指令的具体意思,这里不过多赘述。(默认值:private)

浏览器的缓存机制是根据 HTTP 报文的缓存标识进行的,浏览器第一次向服务器发起该请求后拿到请求结果,会根据响应报文中 HTTP 头的缓存标识,决定是否缓存结果。
浏览器缓存策略分为两种:强制缓存和协商缓存。

强制缓存不会向服务器发送请求,直接从缓存中读取资源,可以看到请求返回的状态码都是200,并且 Size 代表该缓存的位置。

浏览器读取缓存的顺序为memory –> disk。

三级缓存原理 (访问缓存优先级):

在浏览器中,浏览器会在js,字体,图片等文件解析执行后直接存入内存缓存中,那么当刷新页面时只需直接从内存缓存中读取(from memory cache);而css文件则会存入硬盘文件中,所以每次渲染页面都需要从硬盘读取缓存(from disk cache)。

为什么CSS会放在硬盘缓存中?
因为CSS文件加载一次就可渲染出来,我们不会频繁读取它,所以它不适合缓存到内存中,但是js之类的脚本却随时可能会执行,如果脚本在磁盘当中,我们在执行脚本的时候需要从磁盘取到内存中来,这样IO开销就很大了,有可能导致浏览器失去响应。

若服务器的资源最后被修改时间 > If-Modified-Since的字段值
则重新返回资源,状态码为200;否则则返回304,代表资源无更新,可继续使用缓存文件

If-None-Match 的字段值 = 该资源在服务器的Etag值
一致则返回304,代表资源无更新,继续使用缓存文件;不一致则重新返回资源文件,状态码为200。

ETag 和 Last-Modified 区别

参考链接:
https://juejin.im/entry/5ad86c16f265da505a77dca4
https://www.cnblogs.com/suihang/p/12855345.html
https://www.jianshu.com/p/54cc04190252

⑶ 对于前端来说http与https请求有区别么

对于前端用户来说,访问http网站可能会收到“网站不安全”、“连接不私密”等等安全警告,影响正常访问,如果是电商网站还会影响购买行为。而https网站因为安装了SSL证书,比较安全,受浏览器信任,不会弹出安全警告,能建立用户信任等。建议去数安时代申请SSL证书,兼容性比较好。

⑷ 前端必备HTTP技能之请求头响应头格式以及请求方法简述

http协议中,客户端和服务端通过发送纯文本(ASCII)消息的方式进行通信,客户端发送请求(requests)到服务端,服务端发送响应(responses)到客户端。
请求消息格式

例子:

响应消息格式

例子:

为了标识特定资源需要特定的行为访问,HTTP协议定义了多种请求方法。这种特定资源是什么样的,是已有的数据,还有动态生成的?主要依赖于服务端实现。通常来说这种资源对应一个文件或者属于服务端的一个可执行输出。

HTTP/1.0规范定义三种请求方法:GET, POST, HEAD。HTTP/1.1规范又增加了五种:OPTIONS, PUT, DELETE, TRACE,CONNECT。

在规范中定义的这些请求方法是语义化的,并且是可依赖的。任何客户端都可以使用任何请求方法,服务端也可以配置成支持任何这些请求方法的组合。

实际上这些请求方法可以随意定义,没有数量限制,不过你自己定义出来的请求方法会被认为是不安全并且是非幂等的。

总结 :这些请求方法本质上没有区别,最终都是TCP请求,唯一的区别就是每个请求方法,使用的时候,规范规定的使用格式不同,原则上必须按照规范规定的格式使用,其实也可以违反规范使用,比如你可以使用GET方法请求数据,也可以使用GET方法提交数据,当然你可以用POST方法提交数据,也可以用POST方法获取数据。

做好前端开发必须对HTTP的相关知识有所了解,所以我创建了一个专题 前端必备HTTP技能 专门收集前端相关的HTTP知识,欢迎关注,投稿。

⑸ 前端HTTP缓存

在面试的时候总是遇到缓存相关问题,回答总是停留缓存就是从浏览器中获取,不向服务器发送请求,回答的不让面试官满意,索性抽点时间整理一下前端相关的缓存,希望下次回答的时候能够多讲点。

前端缓存分为 强缓存 协商缓存 ,强缓存就是在缓存未失效时,不在请求服务端,协商缓存就是去跟服务器比较是否需要重新获取资源 。

强缓存分为两种, Cache-control Expires Expires 是HTTP1.0的东西,它的值是一个格林时间,比如 Expires: Wed, 21 Oct 2015 07:28:00 GMT ,由于服务器端和浏览器端的时间差异问题,浏览器比服务器时间快,会导致缓存失效。 Cache-control 是HTTP1.1时代的新东西,设置的是一个相对时间, Cache-Control:public, max-age=31536000 ,在31536000秒后才缓存才失效, Cache-control 有很多取值。

强缓存在缓存失效内,不会从原始服务器获取新的数据,假如在缓存时段内服务器有资源更新,会导致资源获取不及时。

协商缓存有两组报文

⑹ HTTP基础系列之:一文搞懂URL

一般我们日常在上网的时候,会在浏览器的地址栏里输入一个网站的 "网址",点击下回车,就会弊灶跳到你想去的网站,就类似这样

但其实,叫做 "网址" 并不是特别的准确,确切的说,应该叫做 URL

那到底啥是 URL 呢? 不就是一个网址吗?

URL 是英文 Uniform Resource Locator 的缩写,即统一资源定位器,是因特网上用于指定信息位置的表示方法,通过它就能找到网上的某个你要的资源

虽然我们平时使用浏览器的时候,只要输入.com或者qq.com就能正常上网了,但其实我们输入的只是整个URL中的一小部分

来,我先看看一个相对完整的URL的整体结构是怎么样的

这里大致分了几个部分,我们一个个来看,它们具体是干什么的

图中http://这部分就是协议部分,即指定了URL是以什么协议发送网络请求的

常见的协议如:http://、https://、ftp://、file://,比如:http://就是超文本传输协议,平时上网大多用这个协议,https://是以安全为目标的HTTP协议。

图中localhost就是地址部分,用来枣卜清确定URL所要访问的服务器的网络地址(也就是网址)。在URL中,地址可以用三个形式来表示:域名、主机名、IP地址

我们平时输入的www..com、www.qq.com就是域名,域名也分一级域名、二级域名、以及顶级域名。

顶级域名 :在域名的尾巴部分,.com这种就是顶级域名,顶级域名一般都代表网站属于某种机构或组织。像.com(商业机构)、.org(非盈利组织)、.gov(政府机构)这类就是常见的顶级域名,除此之外,还有些代表国家的顶级域名,如:.cn(中国)、.us(美国)、.jp(日本)等等

一级域名 :像qq.com就是一级域名,看上去十分简洁,在顶级域名.com前只有一个单词短语

二级域名 :而mail.qq.com和v.qq.com这种前面加了mail.、v.等字符串的就叫二级域名

不过,域名也只是一串文字,计算机和路由器并不能直接认出它,还需要通过DNS服务器找到域名对应的IP地址,再通过底层的TCP/IP协议路由到对应的机器上去 (这些内容不是本文的重点暂时略过,先挖个坑再说)

主机名就是某台计算机的名字,在一个局域网内,可以通过主机名找到你要访问的计算机。主机名和域名一样,计算机和路由器不认它,需要通过HOSTS文件这样的技术找到主机名和IP地址的关联关系,最后还是翻译成IP地址再继续发送网络请求

图中的localhost也是主机名,但是一种比较特殊的主机名,是给 回环地址的一个标准主机名,就是代表本机自己的地址。

在URL中也可以直接用IP地址来代替域名或主机名,如192.168.0.1,关于IP地址的相关知识点放到以后再讲(继续挖坑)

图中在冒号:后面的那串数字8080就是端口号,一台服务器上可以开多个端口号,往往一个网络服务程凳前序就对应一个端口号

比如,我在机器 A 上,开了两个服务程序,分别是Tomcat和SSH,让它们分别关联端口8080和22,那URL中如果端口号是8080就是会访问到Tomcat程序,22就会连接SSH服务。

但可能有小伙伴会有疑问:诶,我平时上网络看到的URL是http://www..com没看到有端口号啊

其实是有的,端口号是80,只是它被隐藏起来了,我们看不到而已,而这个80端口也就是URL的默认端口号

但不是所有URL的默认端口号都是80,如果协议是http://,默认端口号为80,但若是https://协议,默认端口号就是443了

从第一个斜杠/开始,到最后一个斜杠/结束的那部分,也就是图中/app/user/那部分即为虚拟目录

它就类似我们电脑中文件目录的格式,第一个/为根目录,每多一个/就多进入一层目录

从域名后开始算起的最后一个斜杠/开始,到?为止,没有?则到#为止,或者?和#都没有就是到整个URL结束为止的那部分就为文件名

说起来很绕吧,其实就是图中info.do这部分,它一般包含文件名和扩展名('.'后面那部分),用来指代一个URL所访问的具体文件或资源,它可以是图片、html文件、css文件,也可以是js文件、字体文件等等,它也可以不是某种文件,而是服务端后台执行的某段程序。

甚至可以省略不写虚拟目录和文件名,因为它们本来就不是必须的,就如http://www..com这样的URL就没有文件名,但服务器会在缺省的情况下给你定位到某个特定的文件或程序上去。

从?后到#结束,即图中的?uid=101&ty=2为查询参数

查询参数,也称为URL参数、查询字符串,英文名为Query,它是用来向服务端以字符串的形式传递参数和少数数据用的

其参数形式一般都以多个键值对的形式进行表示,如a=1、b=2就是两个键值对,键为"a"和"b",值为对应的"1"和"2", 多个键值对用&连起来:a=1&b=2

但参数要传递的某些值往往带有特殊字符,这些字符和URL标准的格式冲突,比如要传a&b这样字符串,和查询参数键值对的连接符&冲突了,若不加以区分就会产生歧义

而最简单的办法,就是对参数值进行编码,称为 URL Encoding,通过编码,a&b变成了a%26b,就不再包含会冲突的特殊字符

而有些参数即便有特殊字符,也不会被编码,除非自行强制编码,比如URL中参数值是另外一串URL,就可以写成http://localhost/do?url=http://www..com这种特殊情况不会有歧义,因为计算机系统认得出参数是另一串URL,就会按URL的形式来解析,但当子URL又包含子参数和多子键值对的时候也难免会分不清参数到底是儿子的还是父亲的,这时还是强制编码的好

URL的参数是一个个键值对,即一个key对应一个value,那如果是一个key要传递多个值,也就是一个列表咋办?也好办

URL的参数名是可以重复的,比如a=1&a=2&a=3,这里穿了3个参数名都为a的查询参数,是完全可以的,可以利用这种特性,按顺序将1、2、3作为参数a的列表值

为了表示更清楚点,一般都会在列表参数名后面加上一对方括号[],如:a[]=1&a[]=2&a[]=3

但是,对于URL参数的写法和格式的标准,也没有特别严格的规定,以上几种形式一般都会支持

图中#后面那部分字符串,#abc就是锚部分

锚,英文称做Reference,通常也是用来传递参数等信息,但与查询参数的本质区别就是这部分内容不会被传递到服务器端

锚一般用于页面,比如在浏览网页的时候,按个按钮突然帮你定位到页首或页面中的某个位子去了,这就是锚

现在随着前后端分离技术,尤其是vue、reactjs等前端框架的兴起,锚作为前端javascript程序处理的参数载体也越来越重要了

URL看似已经习以为常、非常简单的东西,背后往往也隐藏着很多技术细节和知识点,甚至这短短一篇文章也没办法穷尽

其实URL的内容还有不少,比如<用户名>@<密码>这种用户验证信息在URL中的传递,由于篇幅的关系还没有讲到

所以我讲分几篇文章来讲解HTTP协议的其中几个重要部分,如果这一系列文章对你有帮助,别忘了关注哦~

最后,我还要推荐一款十分好用的 Java 端HTTP框架: Forest

官网:http://forest.dtflyx.com

Gitee仓库:https://gitee.com/dt_flys/forest

Github仓库:https://github.com/dromara/forest

这是一款声名式的HTTP框架,简单好用,因为它将拼接URL、请求头、请求体参数、等待响应,失败重试,转换响应数据到 Java 类型等脏活累活全包了

⑺ 什么是http 前端面试题 csdn

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中着名的RFC 2616定义了HTTP 1.1。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。
通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。

⑻ HTTPBasicAuth原理、token颁发和认证、scope权限作用域

HTTPBasicAuth

-->穗蠢后端逻辑:
flask_httpauth 封装了很多语法糖,以便后端实现BasicAuth;

在api层通过语法糖调用 @auth.login_required ,从而出发 @auth.verify_password 进行数据拦截雹衫,校验前端携带过来的account和password,这里设计只返回加密猜肆陪过的account(即token)。

-->前端逻辑:

⑼ 前端面试01:说一下 http 和 https

https 的 SSL 加密是在传输层实现的。

(1)http 和 https 的基本概念

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

(2)http 和 https 的区别?

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

主要的区别如下:

(3)https 协议的工作原理

(4)https 协议的优点

谷歌曾在 2014 年 8 月份调整搜索引擎算法,并称“比起同等 HTTP 网站,采用 HTTPS 加密的网站在搜索结果中的排名将会更高”。

(5)https 协议的缺点

⑽ socket,tcp,http三者之间的区别和原理

socket,tcp,三者之间的区别和原理是什么?

、TCP/IP协议与socket之间的区别

网路由下往上分为:

物理层--

资料链路层--

网路层-- IP协议

传输层-- TCP协议

会话层--

表示层和应用层-- HTTP协议

(1)TCP/IP连线

手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网路建立TCP连线。TCP协议可以对上层网路提供接口,使上层网路资料的传输建立在“无差别”的网路之上。

建立起一个TCP连线需要经过“三次握手”

第一次握手:客户端传送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也传送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器传送确认包ACK(ack=k+1),此包传送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含资料,三次握手完毕后,客户端与服务器才正式开始传送资料。理想状态下,TCP连线一旦建立,在通讯双方中的任何一
方主动关闭连线之碧慧雹前,TCP

连线都将被一直保持下去。断开连线时服务器和客户端均可以主动发起断开TCP连线的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客
户端互动,最终确定断开).

(2)HTTP连线

HTTP协议即超文字传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连线最显着的特点是客户端传送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连线。从建立连线到关闭连线的过程称为“一次悔帆连线”。

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连线,在处理完本次请求后,就自动释放连线。

2)在HTTP 1.1中则可以在一次连线中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

由于HTTP在每次请求结束后都会主动释放连线,因此HTTP连线是一种“短连线”,要保持客户端程式的线上状态,需要不断地向服务器发起连线
请求。通常的做法是即时不需要获得任何资料,客户端也保持每隔一段碧改固定的时间向服务器传送一次“保持连线”的请求,服务器在收到该请求后对客户端进行回
复,表明知道客户端“线上”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网路已经断开。

(3)SOCKET原理
3-1套接字(socket)概念

套接字(socket)是通讯的基石,是支援TCP/IP协议的网路通讯的基本操作单元。它是网路通讯过程中端点的抽象表示,包含进行网路通讯必须的五种资讯:连线使用的协议,本地主机的IP地址,本地程序的协议端口,远地主机的IP地址,远地程序的协议端口。

应用层通过传输层进行资料通讯时,TCP会遇到同时为多个应用程式程序提供并发服务的问题。多个TCP连线或多个应用程式程序可能需要通过同一个
TCP协议端口传输资料。为了区别不同的应用程式程序和连线,许多计算机作业系统为应用程式与TCP/IP协议互动提供了套接字(Socket)接口。应
用层可以和传输层通过Socket接口,区分来自不同应用程式程序或网路连线的通讯,实现资料传输的并发服务。

3-2建立socket连线

建立Socket连线至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

套接字之间的连线过程分为三个步骤:服务器监听,客户端请求,连线确认。

服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连线的状态,实时监控网路状态,等待客户端的连线请求。

客户端请求:指客户端的套接字提出连线请求,要连线的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连线的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连线请求。

连线确认:当服务器端套接字监听到或者说接收到客户端套接字的连线请求时,就响应客户端套接字的请求,建立一个新的执行绪,把服务器端套接字的描
述发给客户端,一旦客户端确认了此描述,双方就正式建立连线。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连线请求。

(4)SOCKET连线与TCP/IP连线

建立Socket连线时,可以指定使用的传输层协议,Socket可以支援不同的传输层协议(TCP或UDP),当使用TCP协议进行连线时,该Socket连线就是一个TCP连线。

socket则是对TCP/IP协议的封装和应用(程式设计师层面上)。也可以说,TPC/IP协议是传输层协议,主要解决资料 如何在网路中传输,而HTTP是应用层协议,主要解决如何包装资料。关于TCP/IP和HTTP协议的关系,网路有一段比较容易理解的介绍:

“我们在传输资料时,可以只使用(传输层)TCP/IP协议,但是那样的话,如
果没有应用层,便无法识别资料内容,如果想要使传输的资料有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也
可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文字资讯,然后使用TCP/IP做传输层协议将它发到网路上。”

我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个呼叫接口

(API),通过Socket,我们才能使用TCP/IP协议。 实际上,Socket跟TCP/IP协议没有必然的联络。Socket程式设计接

口在设计的时候,就希望也能适应其他的网路协议。所以说,Socket的出现
只是使得程式设计师更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函式接口,比如create、
listen、connect、aept、send、read和write等等。网路有一段关于socket和TCP/IP协议关系的说法比较容易理解:

“TCP/IP只是一个协议栈,就像作业系统的执行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像作业系统会提供标准的程式设计接口,比如win32程式设计接口一样,TCP/IP也要提供可供程式设计师做网路开发所用的接口,这就是Socket程式设计接口。”

实际上,传输层的TCP是基于网路层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP程式设计的接口。socket是对端口通讯开发的工具,它要更底层一些.
(5)Socket连线与HTTP连线
由于通常情况下Socket连线就是TCP连线,因此Socket连线一旦建立,通讯双方即可开始相互发送资料内容,直到双方连线断开。但在实际网路应用中,客户端到服务器之间的通讯往往需要穿越多个中间节点,例如路由器、闸道器、防火墙等,大部分防火墙预设会关闭长时间处于非活跃状态的连线而导致 Socket 连线断连,因此需要通过轮询告诉网路,该连线处于活跃状态。
而HTTP连线使用的是“请求—响应”的方式,不仅在请求时需要先建立连线,而且需要客户端向服务器发出请求后,服务器端才能回复资料。
很多情况下,需要服务器端主动向客户端推送资料,保持客户端与服务器资料的实时与同步。此时若双方建立的是Socket连线,服务器就可以直接
将资料传送给客户端;若双方建立的是HTTP连线,则服务器需要等到客户端传送一次请求后才能将资料传回给客户端,因此,客户端定时向服务器端传送连线请
求,不仅可以保持线上,同时也是在“询问”服务器是否有新的资料,如果有就将资料传给客户端。
协议是应用层的协义
有个比较形象的描述:HTTP是轿车,提供了封装或者显示资料的具体形式;Socket是发动机,提供了网路通讯的能力。
两个计算机之间的交流无非是两个端口之间的资料通讯,具体的资料会以什么样的形式展现是以不同的应用层协议来定义的`如HTTP`FTP`...

TCP/IP Http 和Https之间的区别

经过tls加密,确保资料传输过程中不被第三方监听
资料传输更安全,但由于加密过程会多少增加了CPU负担,当然这点负担对于现代的硬体来说很小可以忽略,换来的是更高的安全性

UI,UE和UX三者之间的区别

UI:User Interface 使用者接口
使用者接口其实是一个比较广泛的概念,指人和机器互动过程中的接口,以车为例子,方向盘、仪表盘、换档器等都属于使用者接口。
现在一般把萤幕上显示的图形使用者接口(GUI :Graphic User Interface)都简单称为UI。
可能是UI这个概念比较难以被一般人理解,所以现在一般所说的UI设计师,也即是指GUI设计师。也就是图形接口设计师。
主要是负责产品或是网站的图形图示色彩搭配,总之是负责网站看起来是一个什么风格什么气质。
UE or UX: User Experience 使用者体验
使用者体验指使用者在使用产品过程中的个人主观感受。关注使用者使用前、使用过程中、使用后的整体感受,包括行为、情感、成就等各个方面。使用者体验是整体感受,所以不仅仅来自于使用者接口,那只是其中的一部分。
通俗的讲这是个整体的使用感受,包括受品牌影响,使用者个人使用经验的影响,总之就是让使用者用着爽。
IxD:Interaction design 互动设计
互动指任何机器互动的过程,互动设计通过了解人的心理、目标和期望,使用有效的互动方式来让整个过程可用、易用。
互动设计的主要物件是人机接口(UI),但不仅限于图形接口(GUI)。为了达到目标,互动设计师需要关注心理、文化、人体工程等许多方面的内容。
说白了,就是怎么让网站理解起来明白,用起来顺手。
UID: User Interface Design 使用者接口设计
使用者接口设计(UID)不仅仅是做“漂亮的接口”,所以不可避免的会涉及到互动设计。所以广义来说,接口设计包含互动设计。但是现在很少提这个概念了。
UED: User Experience Design 使用者体验设计
使用者体验是个人主观感受,但是共性的体验是可以经由良好的设计提升的。使用者体验设计旨在提升使用者使用产品的体验。
网际网路企业中,一般将视觉接口设计,互动设计和前端设计都归为使用者体验设计。
但实际上使用者体验设计贯穿于整个产品设计流程,是必然涉及到的,只是重视与否。
一名优秀的使用者体验设计师,实际上需要对接口、互动和实现技术都有深入的理解。
国内的UED是阿里系交出来的,有很多其他企业不叫UED,而是叫CDC,CDU啥的,总之干的事情都是这些。
UCD:User Centered Design 以使用者为中心的设计
UCD是一种设计模式,思维。强调在产品设计过程中,从使用者角度出发来进行设计,使用者优先。
产品设计有个BTU三圈图(Business, Technique, User),即一个好的产品,应该兼顾商业盈利,技术实现和使用者需求。
无论是B、T还是U为优先进入产品设计,都可以设计出好的产品。UCD只是强呼叫户优先。

UI是使用者接口设计,包括平面的网页的移动端的等等,它只是接口设计。而UE是互动设计,互动就涉及到动态效果展示,一个功能它点选是什么样子的用动态来表达;最后UX是使用者体验,这个就设计的比较广了

ui,ue和ux三者之间的区别

UI是使用者接口设计,包括平面的网页的移动端的等等,它只是接口设计。而UE是互动设计,互动就涉及到动态效果展示,一个功能它点选是什么样子的用动态来表达;最后UX是使用者体验,这个就设计的比较广了,包括了UI和UE,它不光是接口要好看,还涉及到效果展示,是否符合使用者的习惯,人体工程学等等,就是是否好用舒适!

the same……as, the same……that , such……as 三者之间的区别

一、the same as 和 the same that 都指“和……相同”
the same as 强调的是型别的相同
the same that 强调的是物体本身的相同
如果我有一本书,那么同类别的书就叫做the same as,这本书本身就the same that
1.the same as是同样的。譬如,同班学生使用的教材是同样的,可以说:Student A has the same book as Student B (has).(as是关系代词,替代先行词the same book ,又作省去的has的宾语)
2.the same that是同一个。譬如,我今天使用的和昨天使用的是同一本教材,可以说:Today I use the same book that is used yesterday.(that是关系代词,替代先行词the same book ,作主语)
二、such…as的意思是“像……这种的”,“像……那样的”,其中的 as 用作关系代词,引导定语从句,as 在定语从句中用作主语或宾语。此外,不要按汉语意思把该结构中的 as 换成like。
如:
He is not such a fool as he looks. 他并不像他看起来那么傻。
Such men as he (is) are rare now. 现在像他这样的人很少了。

SLEP和SSAT和TOEFL Junior三者之间的区别

1、SLEP(全称:Secondary Level English Proficiency Test),即中学生程度英语水平考试(母语为非英语国家的学生初中,高中的英语能力测验),形象地说就是初中生,高中生的托福。
SLEP TEST的成绩是进入美国中学时判断英语水平的标准,是美国国务院选择公立学校交换学生时的标准,是大学生赴美带薪实习英语水平的标准,是华人对美国学生汉语教师的英文水平的标准.
2、SSAT是Secondary School Admission Test的简称,是美国、加拿大等国私立中学的非常重要的入学考试,即为美国中学入学考试。由美国、加拿大等国私立学校自行选用。它创建于1957年,是由位于美国新泽西州普林斯顿市的中学入学考试委员会SSATB(Secondary School Admission Test Board)命题的考试。
SSAT主要测试学生的数学、英文程度及理解力。考试分为数学、词汇、阅读三大部分,另有作文(不记分)。有低阶(5-7年级的考生),满分为2130分。高阶 (8-11年级的考生),满分为2400分,两种考卷。
3、TOEFL Junior,中文名称”初中托福“或者也叫“小托福“。是美国教育考试服务中心专为全球11—15岁中小学生开发的权威英语能力测试。
该考试不仅可以作为中小学生北美高中留学的英语能力认证,更可以测评现阶段学生的英语水平,为提高英语能力或者将来参加托福考试提供权威指导. 是ETS托福家族最新成员(Ecational Testing Service,美国教育考试服务中心)。后者推出的最广为人知的考试有:GRE(美国研究生入学考试);TOEFL(托福);TOEIC(托业)