http请求

haproxy配置详解

对着背影说爱祢 提交于 2019-12-17 23:31:50
一、HAProxy简介 1.HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 2.HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。 3.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。 二、HAProxy工作原理 HAProxy由前端(frontend)和后端(backend),前端和后端都可以有多个。也可以只有一个listen块来同时实现前端和后端。这里主要讲一下frontend和backend工作模式。 前端(frontend)区域可以根据HTTP请求的header信息来定义一些规则,然后将符合某规则的请求转发到相应后端(backend)进行处理。 三、HAProxy性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化,所有的这些细微之处的优化实现了在中等规模负载之上依然有着相当低的CPU负载,甚至于在非常高的负载场景中,5%的用户空间占用率和95%的系统空间占用率也是非常普遍的现象

java代码编写http请求

独自空忆成欢 提交于 2019-12-17 23:02:01
java代码编写http请求 纯java代码模拟HTTP请求 纯java代码模拟HTTP请求 // An highlighted block package com . wk . cd . test . devcore . tk . service ; import com . wk . lang . AppException ; import java . io . BufferedReader ; import java . io . InputStreamReader ; import java . io . OutputStreamWriter ; import java . net . HttpURLConnection ; import java . net . URL ; import static com . wk . cd . cdcommon . jnbk . service . HttpPublicService . closeStream ; public class testHttpRequest { public static void main ( String [ ] args ) { String urlParam = "http://116.236.14.218:8090/cdWeb/" ; StringBuffer result_buffer

nginx+tomcat+msm实现seesion共享

人走茶凉 提交于 2019-12-17 22:32:31
说明 上一章节 nginx+tomcat+redis负载均衡,实现session共享 ,本次我们使用另一种方式来实现session会话共享,以及实现一套线上运行的环境, 重定提示 本次将重点列于 memcache、ansible 以及keepalived功能的实现上 实验环境 jdk: 8u141 tomcat: 8.5.30 * 2 nginx: 1.12.1 * 2 keepalived: yum memcache: yum * 2 ansible: yum IP地址: 192.168.172.129-134 总六台 第一次手动加简单的ansible,第二次直接用ansible其它的(学习中) 软件下载: memcached-session-manager 需要下载的包[memcached-session-manager-tc8-2.3.0、spymemcached-2.12.3、memcached-session-manager-2.3.0、msm-javolution-serializer-2.1.1,javolution-5.4.3.1] java 需要下载的包jdk-8u141-linux-x64 拓扑图 拓扑-实验说明   1、keepalived实现Nginx负载均衡高可用, keepalived实现服务高可用 将在本章节实现它;   2

HTTP的缓存机制

﹥>﹥吖頭↗ 提交于 2019-12-17 21:58:08
前面的话 缓存机制可以有很多种:比如客户端缓存、服务端缓存、代理服务器缓存等。 而本文主角HTTP的缓存是 浏览器缓存 。为什么这么说,下面来详细介绍一下。 HTTP缓存分类 HTTP缓存可以分为 强缓存 与 协商缓存 。 强制缓存 当缓存数据库中已经有所请求的数据时,客户端直接从缓存数据库中获取数据。 当缓存数据库中没有要请求的数据时,客户端才会从服务端获取数据,并且服务器会将数据和缓存规则一起返回,缓存规则信息包含在响应头中。 Expires: 将资源失效的日期告知客户端。Expires是HTTP1.0的产物,先都用Cache-Control代替。 Cache-Control: 属性很多,用来控制缓存机制。 private:对指定客户端提供缓存 public:任何客户端与代理服务器都可以缓存 max-age:缓存内容在t秒之后失效 no-cache: 需要使用协商缓存来验证缓存数据 no-store: 所有资源都不缓存 协商缓存 客户端会先从缓存数据库中获取到一个缓存数据的标识,得到标识后请求服务器端验证是否失效,如果没有失效服务器端会返回304,此时客户端就可以直接从缓存数据库中获取数据。如果标识失效了,服务器会返回更新后的数据。 Last-Modified: 服务器在响应请求时,会告诉浏览器资源的最后修改时间 if-Modified-Since:浏览器再次请求服务器的时候

node.js入门(五)认识express和express-static中间件文件静态管理

余生颓废 提交于 2019-12-17 21:29:39
一、 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 1、可以设置中间件来响应 HTTP 请求。 2、定义了路由表用于执行不同的 HTTP 请求动作。 3、可以通过向模板传递参数来动态渲染 HTML 页面。 安装 Express 并将其保存到依赖列表中: npm install express -- save 以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。 以下实例中我们引入了 express 模块,并在客户端发起请求后 const express = require('express') var server = express() server.use('/',function (req,res) { res.send("首页") //传送HTTP响应 }) server.listen(8080) 执行以上代码: 在浏览器输入localhost:8080,可以看到输出了“首页” Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容

http协议讲解

亡梦爱人 提交于 2019-12-17 20:13:28
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 http请求-响应模型.jpg 主要特点 1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 3.无连接

C# 接收http请求

不想你离开。 提交于 2019-12-17 20:03:30
使用httplistener监听来自客户端的http请求,对于Get请求的数据可以通过Request.QueryString["参数"]获取 而对于来自客户端的Post请求则不能使用Request[""]获取,需要将获取分析请求流中的数据拿到参数 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace HttpListenerPost { /// <summary> /// HttpListenner监听Post请求参数值实体 /// </summary> public class HttpListenerPostValue { /// <summary> /// 0=> 参数 /// 1=> 文件 /// </summary> public int type = 0; public string name; public byte[] datas; } /// <summary> /// 获取Post请求中的参数和值帮助类 /// </summary> public class

安全测试之-CORS

。_饼干妹妹 提交于 2019-12-17 18:01:04
CORS 1. cors(cross origin resource share)跨域资源共享 拍摄与南京   浏览器的同源策略限制了脚本的跨域请求,但互联网的发展是越来越开放的,随着发展,跨域请求变得越来越多,CORS应运而生。CORS是一个W3C标准,它允许浏览器向跨源服务器发出xmlhttprequest请求,从而克服了AJAX(创建交互式网页应用程序的网页开发技术)只能同源使用的限制。   在CORS发布之前浏览器使用的是同源策略。 同源策略(same origin policy) 简介: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。   浏览器的同源策略限制了来自不同源的“document”或脚本,对当前“document”的读取或设置某些属性。 同源针对以下三个部分 a) host(域名或ip、子域名) b) 协议 c) 端口 浏览器访问服务器时,上述任一部分不满足同源则不能正常访问服务器(实际浏览器拦截的是发出请求后服务器返回的数据)。即请求发送了,服务器响应了,但是无法被浏览器接收。 举个例子: http://123456.com pass http://123456.com/path

Centos7安装Nginx实战

痴心易碎 提交于 2019-12-17 10:30:25
一、背景   随着业务量和用户数量的激增,单一的tomcat部署应用已经无法满足性能需求,而且对于每次发布项目期间服务不可用的问题也凸显,既然出现了这个问题,那么我们本文就借助nginx来完美的解决这个问题。 二、基本概念 1.说明:关于Nginx的概念和介绍以及Centos7下安装步骤,请移步: Centos7安装Nginx实战 2.正向代理和反向代理  假设我们给定客户端A、代理服务器B、以及最终服务器C  正向代理:代理服务器B来代替客户端A来访问最终服务器C并将最终结果转发给客户端A,站在客户端A的角度上,代理服务器代理的是客户端A,这个过程是正向的,所以叫正向代理。(正向代理需要客户端A设置代理服务器的ip和提供代理服务的端口)  反向代理:客户端A直接访问代理服务器B,由代理服务器B来决定将请求转发到哪个最终服务器进行真正处理,并将最终服务器的处理结果转发给客户端A,也就是代理服务器代理的是最终服务器C,站在客户端A的角度上,这个过程是反向的,所以叫反向代理。(反向代理不需要客户端A进行任何设置)  关于正向代理和反向代理,这里有一篇不错的文章: 图解正向代理、反向代理、透明代理 3.负载均衡(Load Balance)   所谓负载均衡就是将一批可以提供相同服务的服务器组成一个服务器集合,每台服务器都可以单独向外部提供相同的服务,通过某种负载分担技术

一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等

核能气质少年 提交于 2019-12-17 07:52:48
1、引言 关于“负载均衡”的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务。 负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡有两方面的含义: 1)首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间; 2)其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。 简单来说就是: 1)其一是将大量的并发处理转发给后端多个节点处理,减少工作响应时间; 2)其二是将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。 目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。 总之,它的目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。 内容概述:本文将从负载均衡技术的分类、技术原理、常见实现算法、常用方案等入手,为您详细讲解负载均衡技术的方方面面。这其中,四层和七层负载均衡技术最为常用,它们也是本文介绍的重点。 内容点评