客户端服务器

【Web Design The Missing Link】Designing Representations

只谈情不闲聊 提交于 2020-01-22 12:31:45
目录 使用JSON 让JSON简洁化 包含链接 为什么这样更好? 当有链接时URI模板还有用吗? 类比万维网 包含链接,步骤二 注意事项 在资源中如何表示链接? 谁使用链接? 更多 API设计的许多讨论都是从如何设计URL开始的。在像REST这样的面向数据的模型中,我们认为最好从表示形式(Representations)设计开始。 我们将在“Designing URL”一节中讨论URL设计。 表现形式(representation)作为技术术语,其含义可描述为: 客户端从服务器检索Web资源或从客户端发送到服务器时返回的数据 在REST模型中,Web资源不具有直观的基础状态,「 在客户端和服务器之间所流动着的 」,便是对那种状态的一种描述。用户可以查看一个资源不同形式的"表现形式"(representation),而这被称为“MEDIA-TYPE”。原则上,用于表示特定资源的所有媒体类型都可以以不同的格式来编码相同的信息。 使用JSON Web API中资源表示的主要媒体类型是JSON(JavaScript Object Notation)。 JSON成功的主要原因可能是易于理解,并且易于映射到JavaScript和其他流行编程语言(Python,Ruby,Java等)的数据结构中。现在,您应该使用JSON,因为它已成为Web API事实上的标准。 虽然JSON很好而且很受欢迎

Django 的简单面试题

别来无恙 提交于 2020-01-22 11:51:01
1. 对Django的认识? #1.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 #2.Django内置的ORM跟框架内的其他模块耦合程度高。 # 应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利; # 理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。 #3.Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。 #4.Django适用的是中小型的网站,或者是作为大型网站快速实现产品雏形的工具。 #5.Django模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。 2. Django 、Flask、Tornado的对比 #1.Django走的是大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器 #给开发者提高了超高的开发效率 #2.Flask是轻量级的框架,自由,灵活,可扩展性很强,核心基于Werkzeug WSGI工具和jinja2模板引擎 #3

JavaWeb(六)[Cookie+Session]

与世无争的帅哥 提交于 2020-01-22 08:30:54
1、什么是会话 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。Web应用中的会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)于web服务器之间连续发生的一系列请求和响应过程,例如,一个用户在某网络上的整个购物过程就是一个会话。 在打电话过程中,通话双方会有通话内容,同样,在客户端与服务器交互的过程中,也会产生一些数据。例如,用户甲和乙分别登陆了购物网站,甲购买了一个Nokia手机,乙购买了一个Ipad,当这两个用户结账时,web服务器需要对用户甲和乙的信息分别进行保存。在前面章节讲解的对象中,HttpServletRequest对象和ServletContext对象都可以对数据进行保存,但是这两个对象都不可行,具体原因如下: 1)客户端请求web服务器时,针对每次http请求,web服务器都会创建一个HttpServletRequest对象,该对象只能保存本次请求所传递的数据。由于购买和结账是两个不同的请求,因此,在发送结账请求时,之前购买请求中的数据将会丢失 2)使用ServletContext对象保存数据时,由于同一个Web应用共享的是同一个ServletContext对象,因此,当用户在发送结账请求时,由于无法区分哪些商品是哪个用户所购买的,而会将该购买网站中所有用户购买的商品进行结算,这显然也是不可行的 3

关于session的总结(摘录)

﹥>﹥吖頭↗ 提交于 2020-01-22 04:44:42
作者Hyddd 链接:http://www.cnblogs.com/hyddd/archive/2008/12/29/1364646.html 看了一些Session的资料,在这里再总结一下Session相关的知识(很多是从网上搜集的资料)。 1.Session是什么?   session,中文经常翻译为会话。   (1).打个比方:比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。同理,用户的一次Session可以理解为:打开这个网站到关闭这个网站的一系列动作。    (2).然而当session一词与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”这样两个含义,“面向连接”指的是在通信双方在通 信之前要先建立一个通信的渠道,比如打电话,直到对方接了电话通信才能开始,与此相对的是写信,在你把信发出去的时候你并不能确认对方的地址是否正确,通 信渠道不一定能建立,但对发信人来说,通信已经开始了。“保持状态”则是指通信的一方能够把一系列的消息关联起来,使得消息之间可以互相依赖,比如一个服 务员能够认出再次光临的老顾客并且记得上次这个顾客还欠店里一块钱。这一类的例子有“一个TCP session”或者“一个POP3 session”。   (3).而到了web服务器蓬勃发展的时代,session在web开发语境下的语义又有了新的扩展

Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

孤人 提交于 2020-01-22 01:50:06
一、先恶狠狠地吐槽一下: 这篇随笔真是让我折腾了2天2夜才敢下笔写!!!为什么呢?之前是通过去Samba的官网下载的源码包,也就是.tar.gz来进行安装配置,不过这个让我折腾来折腾去就是没折腾出结果,还花了我整整1天1夜的时间,最后实在是熬不住了,想通过yum来重新进行Samba服务器的安装与配置,但是要使用yum首先必须是CentOS要联网,而我又没有找到Samba的rpm包,而之前一直没有搞定在虚拟机中的CentOS上网的问题,所以新的纠结又开始了,首先得先想办法让虚拟机能上网,这段经历已经记录下来了,可以查看上一篇随笔-- Linux学习之CentOS(十)--虚拟机下的CentOS如何上网 在经过一番痛苦的搜索、尝试之后,虚拟机上的CentOS终于能够上网了,当时我的那个热泪盈眶啊。。。。。。在能上网之后,我迫不及待地准备使用yum来重新安装我的Samba服务器。。。。。。至此,才开始下笔记录这段艰辛的历程!!!!! 二、Samba的简介: Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微 软又把 SMB 改名为 CIFS

Andrew\'s Blog / 《Network Programming with Go》学习笔记

陌路散爱 提交于 2020-01-21 22:53:49
第一章: Architecture(体系结构) Protocol Layers(协议层) ISO OSI Protocol 每层的功能: 网络层 提供交换及路由技术 传输层 提供了终端系统之间的数据透明传输,并且负责端到端的错误恢复及流程控制 会话层 用来建立、管理、以及终止应用程序之间的连接 表现层 提供数据表现差异的独立性(例如加密) 应用层 支持应用程序和用户程序 TCP/IP Protocol Gateways(网关) 网关是一个统称,它用于连接起一个或多个网络。 其中的 中继器 在物理层面上进行操作,它将信息从一个子网复制到另一个子网上。 桥接 在数据连接层面上进行操作,它在网络之间复制帧。 路由器 在网络层面上进行操作,它不仅在网络之间复制信息,还决定了信息的传输路线。 Packet encapsulation(数据包封装) 在OIS或TCP/IP协议栈层与层之间的通信,是通过将数据包从一个层发送到下一个层,最终穿过整个网络的。 每一层都有必须保持其自身层的管理信息。 从上层接收到的数据包在向下传递时,会添加头信息。 在接收端,这些头信息会在向上传递时移除。 TFTP(普通文件传输协议)将文件从一台计算机移动到另一台上。它使用IP协议上的UDP协议,该协议可通过以太网发送。看起来就像这样: Connection Models(连接模型) Connection

java 网络编程

三世轮回 提交于 2020-01-21 21:31:15
在现实中,我们通过统一的度量,规定标准来约束大家的生活方方面面,而在虚拟的,我们也必须有这样的一套度量衡来平衡网络世界,这时候我们就用到了协议,其中TCP协议和UDP协议则是最常见的。 java.net 包中提供了两种常见的网络协议的支持: TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。 UDP:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。 本教程主要讲解以下两个主题。 Socket 编程:这是使用最广泛的网络概念,它已被解释地非常详细。 URL 处理:这部分会在另外的篇幅里讲,点击这里更详细地了解在 Java 语言中的 URL 处理。 Socket Socket又被称之为套接字,我们可将其比喻为生活中的插座,当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。 java.net.Socket 类代表一个套接字,并且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们建立连接的机制。 以下步骤在两台计算机之间使用套接字建立TCP连接时会出现: 服务器实例化一个 ServerSocket 对象,表示通过服务器上的端口通信。 服务器调用

微服务(概念篇):什么是微服务?一篇文章让你彻底搞明白

落爺英雄遲暮 提交于 2020-01-21 18:29:07
目录 前言 一、微服务介绍 1.什么是微服务 微服务由来 为什么需要微服务? 3.1 早期的单体架构带来的问题 3.2 微服务与单体架构区别 3.3 微服务与SOA区别 微服务本质 什么样的项目适合微服务 微服务折分与设计 6.1 微服务设计原则 微服务优势与缺点 7.1 特性 7.2 特点 7.3 缺点 微服务开发框架 Sprint cloud 和 Sprint boot区别 二、微服务实践先知 客户端如何访问这些服务?(API Gateway) 服务之间如何通信?(服务调用) 这么多服务怎么查找?(服务发现) 服务挂了怎么办? 微服务需要考虑的问题 三、微服务重要部件 微服务基本能力 服务注册中心 2.1 zookeeper服务注册和发现 负载均衡 3.1 负载均衡的常见策略 容错 4.1 容错策略 熔断 限流和降级 SLA API网关 多级缓存 超时和重试 线程池隔离 降级和限流 网关监控和统计 前言 到底什么是微服务?为什么要用微服务?微服务主要来做一些什么?微服务有哪些优势?什么样的服务属于微服务?本文所有资料来源网络,我只是整理一下,总结一下。仅供参考。 一、微服务介绍 1.什么是微服务 在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微,狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释

Linux Puppet服务安全配置(Puppet服务器 2Puppet客户端)(集中配置管理 同步服务器:客户端拉取、服务器推送)

℡╲_俬逩灬. 提交于 2020-01-21 00:36:19
案例 概 述 随着服务器数量的增多,管理的任务量也逐渐增加,这时就需要简洁的、强大的框架来 完成系统管理任务 实现这一目的,我们将引入一批工具,这批工具是 “可编程”的,管理人员只需要为 这批工具写上几行“代码”,它便会自动完成所有的工作,这批工具就是自动化puppet 在一些大型互联网企业中,自动化管理着几百甚至上千台服务器,它可以针对多台服务 器进行统一操作 ,例如部署统一软件、进行统一上线维护等,而且能够快速完成上线 部署,减少人力及人力误操作风险 案例分析-----工作流程 案例分析-----配置要求 搭建puppetmaster 搭建puppetclient 配置测试节点 客户端主动拉取 服务器推送 实验环境搭建 1台Puppetmaster服务器(NTP服务器) 2台Puppetclient客户端 Puppetmaster服务器:192.168.11.10/24 Puppetclient1:192.168.11.11/24 Puppetclient2:192.168.11.12/24 配置Puppetmaster服务器 基本配置 关闭防火墙设置ip 配置yum仓库文件 测试yum 搭建Puppetmaster服务器 规划服务器主机名 临时修改主机名并生效 配置服务器时间同步 时间同步(由于是本机就不用此步骤 可以在客户端上测试) 安装ruby 查看ruby的版本等信息

总结HTTPS握手层和加密层

泪湿孤枕 提交于 2020-01-20 19:27:21
前面说过,TLS/SSL协议可以和应用层协议结合,例如HTTP,SMTP和FTP等。提供数据完整性和机密性TLS/SSL协议建立在TCP或UDP之上,应用层协议之下,任何应用层协议使用了TLS,都要先把数据经过TLS/SSL处理。客户端浏览器连接服务器的443端口,发送HTTP数据到TLS/SSL协议,再到传输层TCP处。TLS协议部分有握手层和加密层两部分,握手层在上,加密层在下,握手层负责完成密码套件,也就是使用的加密算法,密钥参数生成和交换,发送证书等,最后完成密钥协商得到预备主密钥,预备主密钥用过密钥衍生算法得到主密钥,之后就可以把这它交给下面的加密层,完成数据加密和解密。加密层的功能顾名思义,在拿到握手层提供的主密钥后,对HTTP数据提供完整性和机密性保证。 握手层和加密层流程 在握手层,负责交换随机数,密钥套件和密钥协商等,无论是RSA还是DH方式,首先都是客户端发送自己支持的密码套件给服务器,服务器从中选择一个密钥套件,完成密码套件的协商,然后服务器端发送自己的证书给客户端进行身份验证,客户端完成身份验证后,可以开始密钥协商。RSA密钥协商,客户端直接把加密后的预备主密钥发送给服务器端,DH密钥协商则先由服务器端发送DH参数和DH公钥给客户端,客户端根据DH参数生成自己的密钥对,再把客户端DH公钥发送给服务器端,完成密钥协商。接下来就可以在通信中进行数据的加密和解密。