accept

restful

雨燕双飞 提交于 2019-12-01 00:23:23
restful RESTful架构,就是目前最流行的一种互联网软件架构。 它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 起源 REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、 Apache服务器软件的作者之一、Apache基金会的第一任主席。 Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。翻译是”表现层状态转化”。 如果一个架构符合REST原则,就称它为RESTful架构。 要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义。如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。 资源(Resources) REST的名称”表现层状态转化”中,省略了主语。”表现层”其实指的是”资源”(Resources)的”表现层”。 所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。 它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。 你可以用一个URI(统一资源定位符)指向它

防火墙iptables

半腔热情 提交于 2019-11-30 23:09:46
防火墙iptables iptables是开源的基于数据包过滤的防火墙工具。 iptables应用场景 1、主机防火墙(filter表的INPUT链)。 2、局域网共享上网(nat表的POSTROUTING链)。NAT功能。 3、端口及IP映射(nat表的PREROUTING链),硬防的NAT功能。 4、IP一对一映射。 iptables工作流程 iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。 1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。 2.如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。 3.如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。 4.防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)。 iptables四表五链 Filter NAT iptables工作原理图 iptables环境安装 [root@lb01 ~]# yum -y install iptables-services [root@lb01 ~]# systemctl start iptables.service [root@lb01 ~]#

Paxos - Basic Paxos

最后都变了- 提交于 2019-11-30 22:49:17
Basic Paxos 总的来说,Basic Paxos分成四个角色,俩个步骤,分别是 角色: 1.Client   Client发送一个请求到分布式系统,比如请求一个文件 1.Proposer   Proposer接收客户端的请求,并且让Acceptors接受这个请求。当发送冲突时,担任协调者。 2.Acceptors   一组Acceptors组成法定人数(一群Acceptors),任何发送给Acceptors的消息都必须发送给法定人数,从Acceptors收到的任何消息都应该忽略,   除非从法定人数内的每个Acceptors都收到一份同样的消息。 3.Learner   Learner充当协议的复制者,一旦Client的请求被Acceptors通过,Learner就可以执行客户端的请求(执行请求,响应数据给Client),为了保证可用性,Learner可以动态添加。 上面三个角色,任何一个参与者都可以扮演任意角色,但是在一轮共识过程中,只能担任一个角色(在共识形成后Learner才有作用)。 4.Leader   Paxos需要一个Proposer充当Leader来管理过程。但是可能有多个Proposer相信自己是Leader,协议保证只选择其中的一个,如果有多个Leader,就会出现冲突更新。 Quorums Quorums 表示法定人数,任何俩组法定人数

accept函数

一个人想着一个人 提交于 2019-11-30 21:36:37
  accept()是一个套接口接收的一个连接。accept()是C语言中网络编程的重要函数,本函数从S的等待连接队列中抽取第一个连接,创建一个与S同类的新的套接口并返回句柄。 表达式简介   SOCKET accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);  参数:   sockefd:套接字描述符,该套接字在listen()后监听连接。   addr:(可选)指针。指向一个缓冲区,其中接收为通讯层所知的连接实体的地址。Addr参数的实际格式由套接口创建时所产生的地址族确定。   addrlen:(可选)指针。输入参数,配合addr一起使用,指向存有addr地址长度的整形数。   本函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。如果队列中无等待连接,且套接口为阻塞方式,则accept()阻塞调用进程直至新的连接出现。如果套接口为非阻塞方式且队列中无等待连接,则accept()返回一错误代码。已接受连接的套接口不能用于接受新的连接,原套接口仍保持开放。   addr参数为一个返回参数,其中填写的是为通讯层所知的连接实体地址。addr参数的实际格式由通讯时产生的地址族确定。addrlen参数也是一个返回参数,在调用时初始化为addr所指的地址空间

iptables配置详解

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 12:14:43
一:iptables【详解】 防火墙的名字其实是natfilter,iptables是个工具,防火墙下默认是四个表五个链,表分为:filter、nat、mangle、raw,链分别为:其中最常用的是filter表! nat:此规则表拥有 PREROUTING 和 POSTROUTING 两个规则链,主要功能为进行一对一、一对多、多对多等网址转换工作(SNAT、DNAT),这个规则表除了作网址转换外,请不要做其它用途。 mangle:此规则表拥有 PREROUTING、FORWARD 和 POSTROUTING 三个规则链。除了进行网址转换工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定 MARK(将封包作记号,以进行后续的过滤),这时就必须将这些工作定义在 mangle 规则表中,由于使用率不高,我们不打算在这里讨论 mangle 的用法。 filter: 这个规则表是默认规则表,拥有 INPUT、FORWARD 和 OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤的处理动作(例如:DROP、 LOG、 ACCEPT 或 REJECT),我们会将基本规则都建立在此规则表中。 1:iptables【语法】 iptables -t [表] -I [链名] -p [协议] --dport [ 端口号] -s [来源ip] -d [目标ip]

Selenium 2自动化测试实战17(警告框处理)

让人想犯罪 __ 提交于 2019-11-30 09:43:58
一、警告框处理 在WebDriver中处理JavaScript所生成的 alert、confirm以及prompt 十分简单,只需要使用 switch_to_alert() 方法定位到 alert/confirm/prompt ,然后使用 text/accept/dismiss/send_keys 等方法进行操作。 (1)text:返回alert/confirm/prompt中的文字信息 (2)accept():接受现有警告框 (3)dismiss():解散现有警告框 (4)send_keys(KeysToSend):发送文本至警告框。KeysToSend:将文本发送至警告框。 #coding:utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains import time driver=webdriver.Chrome() driver.implicitly_wait(10) driver.get("http://www.baidu.com") #鼠标悬停至设置 link=driver.find_element_by_link_text(u

Sink

主宰稳场 提交于 2019-11-29 22:29:48
说明文档 Consumer 的扩展,用于在流管道的各个阶段处理值,并且提供了额外的方法去管理大小信息、控制流程等 在首次调用 Sink 的 accept() 方法之前,必须首先调用 begin() 方法去通知其数据即将过来(视情况还会通知 Sink 有多少数据即将过来),在所有数据发送过来后,必须调用 end() 方法。 begin 与 end 之间调用 accept 在调用了 end() 方法后,就不应该再调用 accept() 方法,除非再次调用 begin() 方法 Sink 还提供了一种机制,sink 可以发出不希望再接收更多数据的信号 一个 Sink 可以处于下述两个状态之一 初始状态 与 激活状态 由初始状态起步 begin() 方法会将其准换为激活状态 end() 方法又会将其转换会初始状态 因此它可以被重用 数据接受方法(如 accept())只在激活状态下有效 apiNote 一个流管道包括一个源、零个或多个中间阶段(比如过滤filter或映射map),和一个终止阶段(比如 reduction 或 for-each) 一个 Sink 实例用于表示当前管道中的每一个阶段,无论阶段接收的是 objects、longs,或doubles 对于 accept(Object)、accept(int) 等,Sink 拥有一个入口点

java网络编程2 -- BIO

吃可爱长大的小学妹 提交于 2019-11-29 22:15:12
BIO 什么叫BIO , BIO 是 block input output 的缩写 , 意思就是阻塞式的IO。这个是为了区别后面的NIO , 有关NIO ,后面再做介绍。 举个简单的例子:我在使用bio的socket网络通信中,会有下面的代码: ServerSocket serverSocket = new ServerSocket(port); while (true) { Socket accept = serverSocket.accept(); InputStream inputStream = accept.getInputStream(); OutputStream outputStream = accept.getOutputStream(); byte[] readBytes = new byte[100]; inputStream.read(readBytes); System.out.println("===== " + new String(readBytes)); outputStream.write((System.currentTimeMillis() + "").getBytes()); accept.close(); } 在 inputStream.read(readBytes);这一行,如果socket链接没有断,他会一直等待

RedHat linux服务器对外开放指定端口

戏子无情 提交于 2019-11-29 21:45:33
为了能够远程访问这台机器上的MySQL,需要开放3306端口: [root@localhost ~]# service iptables status Redirecting to /bin/systemctl status iptables.service Unit iptables.service could not be found. 安装 iptables-services: yum install iptables-services 启动 iptables: service iptables start 编辑配置文件,将3306端口添加到22端口下: vi /etc/sysconfig/iptables # sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state

高性能网络编程(一)----accept建立连接

一笑奈何 提交于 2019-11-29 21:39:31
最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它。 编 写服务器时,许多程序员习惯于使用高层次的组件、中间件(例如OO(面向对象)层层封装过的开源组件),相比于服务器的运行效率而言,他们更关注程序开发 的效率,追求更快的完成项目功能点、希望应用代码完全不关心通讯细节。他们更喜欢在OO世界里,去实现某个接口、实现这个组件预定义的各种模式、设置组件 参数来达到目的。学习复杂的通讯框架、底层细节,在习惯于使用OO语言的程序员眼里是绝对事倍功半的。以上做法无可厚非,但有一定的局限性,本文讲述的网 络编程头前冠以“高性能”,它是指程序员设计编写的服务器需要处理很大的吞吐量,这与简单网络应用就有了质的不同。因为:1、高吞吐量下,容易触发到一些 设计上的边界条件;2、偶然性的小概率事件,会在高吞吐量下变成必然性事件。3、IO是慢速的,高吞吐量通常意味着高并发,如同一时刻存在数以万计、十万 计、百万计的TCP活动连接。所以,做高性能网络编程不能仅仅满足于学会开源组件、中间件是如何帮我实现期望功能的,对于企业级产品来说,需要了解更多的 知识。 掌握高性能网络编程,涉及到对网络、操作系统协议栈、进程与线程、常见的网络组件等知识点,需要有丰富的项目开发经验,能够权衡服务器运行效率与项目开发效率。以下图来谈谈我个人对高性能网络编程的理解。 上面这张图中