服务器端

selenium基础-图形验证码

左心房为你撑大大i 提交于 2019-12-03 07:46:25
selenium基础-图形验证码 一、图形验证码作用   设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站 二、图形验证码是由客户端生成还是由服务器端生成的?   图形验证码是由服务器端生成的,再由前端进行渲染呈现给客户 三、遇到图形验证码的处理方式 使用万能验证码 屏蔽验证码 将服务器中生成的验证码以cookie的形式写入浏览器 后台增加接口,获取服务器端保存的验证码内容 图片识别,取到图片上的验证码中的内容 来源: https://www.cnblogs.com/jingdenghuakai/p/11783692.html

01 web框架简介

纵饮孤独 提交于 2019-12-03 04:33:20
WeB: Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。 应用程序有两种模式C/S、B/S。   C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。   而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等浏览器来运行。 WEB应用程序一般是B/S模式。   Web应用程序首先是“应用程序”,和用标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。   在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。 http协议特性   (1) 基于TCP/IP     http协议是基于TCP/IP协议之上的应用层协议。   (2) 基于请求-响应模式     HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应   (3) 无状态保存     HTTP是一种不保存状态,即无状态(stateless)协议。     HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。   使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产 生

cookie和session

匿名 (未验证) 提交于 2019-12-03 00:40:02
回话技术:帮助服务器记住客户端状态(区分客户端) cookie:数据存储在客户端本地,减少服务器端的存储压力,安全性不好,客户端可以清楚cookie session:数据存储在服务器端,安全性好,增加服务器压力 cookie(不能存储中文) 1、服务器端向客户端发送一个cookie // 1.创建cookie对象 Cookie cookie = new Cookie ( "goods" , "peanut" ); // 设置cookie的持久化时间 // cookie.setMaxAge(2*60); // 设置cookie路径 // cookie.setPath("/WEB05/demo/SendCookieServlet"); cookie . setPath ( "/WEB05" ); // 2.cookie response . addCookie ( cookie ); 删除cookie:设置一个同名同路径持久化时间为0的新cookie覆盖 // 删除客户端保存的cookie Cookie cookie = new Cookie ( "goods" , "peanut" ); cookie . setPath ( "/WEB05" ); cookie . setMaxAge ( 0 ); response . addCookie ( cookie ); 2

Dubbo-6 并发控制 连接控制

匿名 (未验证) 提交于 2019-12-03 00:36:02
限制com.foo.BarService的每个方法, 服务器端 并发执行(或占用线程池线程数)不能超过10个: < dubbo:service interface = "com.foo.BarService" executes = "10" /> 限制com.foo.BarService的sayHello方法, 服务器端 并发执行(或占用线程池线程数)不能超过10个: < dubbo:service interface = "com.foo.BarService" > < dubbo:method name = "sayHello" executes = "10" /> </ dubbo:service > 限制com.foo.BarService的每个方法,每 客户端 并发执行(或占用连接的请求数)不能超过10个: < dubbo:service interface = "com.foo.BarService" actives = "10" /> Or: < dubbo:reference interface = "com.foo.BarService" actives = "10" /> 限制com.foo.BarService的sayHello方法,每 客户端 并发执行(或占用连接的请求数)不能超过10个: < dubbo:service interface = "com

TCP HTTP SOCKET之间的有什么关系

匿名 (未验证) 提交于 2019-12-03 00:33:02
网络由下往上分为   物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。   通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,   三者从本质上来说没有可比性,   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编程接口在设计的时候,就希望也能适应其他的网络协议。

Django之路――1 Django的简介

匿名 (未验证) 提交于 2019-12-03 00:33:02
今天我们来学习django,在学习Django之前我们先来了解一下django和web开发中的http协议 1.mvc模型和mtv模型 既然学习Django,那么我们一定要只要web开发中的mvc模型和mtv模型 mvc模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示: mtv模型 Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值: M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。 T 代表模板 (Template): 负责如何把页面展示给用户(html)。 V 代表视图(View) : 负责业务逻辑,并在适当时候调用Model和Template。 除了以上三层之外,还需要一个URL分发器 ,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示: 一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,

基于TCP/UDP的Socket编程

匿名 (未验证) 提交于 2019-12-03 00:30:01
基于TCP(面向连接)的socket编程,分为客户端和服务器端。 服务器端的流程如下: (1)创建套接字(socket) ---- Create a socket. (2)将套接字绑定到一个本地地址和端口上(bind) ---- Remove any existing file with the same pathname as that to which we want to bind the socket. (3)将套接字设为 监听模式 ,准备接收客户端请求(listen)即等待客户端调用connect(). ---- Construct an address structure for the server's socket, bind the socket to that address, and mark the socket as a listening socket. (4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) ---- Execute an infinite loop to handle incoming client requests. Each loop iteration (迭代,反复,重复) performs the following steps: -- Accept a connection,

Session 与 Token 的区别

匿名 (未验证) 提交于 2019-12-03 00:30:01
1. 为什么要有session的出现? 答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的。如果要进行类似论坛登陆相关的操作,就实现不了了。 2. session生成方式? 答:浏览器第一次访问服务器,服务器会创建一个session,然后同时为该session生成一个唯一的会话的key,也就是sessionid,然后,将sessionid及对应的session分别作为key和value保存到缓存中,也可以持久化到数据库中,然后服务器再把sessionid,以cookie的形式发送给客户端。这样浏览器下次再访问时,会直接带着cookie中的sessionid。然后服务器根据sessionid找到对应的session进行匹配; 还有一种是浏览器禁用了cookie或不支持cookie,这种可以通过URL重写的方式发到服务器; 简单来讲,用户访问的时候说他自己是张三,他骗你怎么办? 那就在服务器端保存张三的信息,给他一个id,让他下次用id访问。 3. 为什么会有token的出现? 答:首先,session的存储是需要空间的,其次,session的传递一般都是通过cookie来传递的,或者url重写的方式;而token在服务器是可以不需要存储用户的信息的,而token的传递方式也不限于cookie传递,当然

基于UDP协议的socket编程

匿名 (未验证) 提交于 2019-12-03 00:30:01
一、socket概述 1.socket一般被称为“套接字”,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端就叫做socket。 2.建立网络通信连接至少需要一个端口号(socket),socket利用网络之间的通信设施实现进程通信,但它对通信设施的细节不关心,只要通信设施能够提供足够的通信能力,就可以实现通信。 例子:假如你想给你一个人打电话,首先你得有一部电话机,这个电话机就相当于申请了一个socket;同时你也要知道对方的电话号码,就相当于对方也有了一个固定的socket;然后你拨号呼叫对方,相当socket发出连接请求,如果对方在并且空闲,就会接起电话,双方就可以正式通话,相当于连接成功;双方通话的这个过程,就相当于向socket发送数据和从socket接收数据的过程。 3. socket常用函数 网络连接函数:① socket():创建套接字; 4.socket编程步骤 (1)服务器端步骤 socket()函数 加载套接字库,创建套接字; (2)客户端步骤 使用 socket()函数 加载套接字库,创建套接字 ; 用closesocket()函数关闭套接字。 二、UDP协议 UDP 是 UserDatagram Protocol 的简称,中文名是用户数据报协议,在网络中它与 TCP 协议一样用于处理数据包,是一种无连接的协议。它不与对方建立连接

理解HTTP幂等性

匿名 (未验证) 提交于 2019-12-03 00:27:02
今天在学习spring cloud 的时候,看到这么一句话: 在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于 http restful 博主 写的非常简单明了,非常清晰,给人一种拔云见日的感觉。在这里给大家分享一下。 理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技术和工具的发展,互联网应用架构设计表现出了从传统的PHP、JSP、ASP.NET等服务器端动态网页向Web API + RIA(富互联网应用)过渡的趋势。Web API专注于提供业务服务,RIA专注于用户界面和交互设计,从此两个领域的分工更加明晰。在这种趋势下,Web API设计将成为服务器端程序员的必修课。然而,正如简单的Java语言并不意味着高质量的Java程序,简单的HTTP协议也不意味着高质量的Web API。要想设计出高质量的Web API