http请求

惊讶!线上四台机器同一时间全部 OOM,到底发生了什么?

半腔热情 提交于 2019-12-10 02:33:28
案发现场 昨天晚上突然短信收到 APM (即 Application Performance Management 的简称),我们内部自己搭建了这样一套系统来对应用的性能、可靠性进行线上的监控和预警的一种机制)大量告警 画外音: 监控是一种非常重要的发现问题的手段,没有的话一定要及时建立哦 紧接着运维打来电话告知线上部署的四台机器全部 OOM (out of memory, 内存不足),服务全部不可用,赶紧查看问题! 问题排查 首先运维先重启了机器,保证线上服务可用,然后再仔细地看了下线上的日志,确实是因为 OOM 导致服务不可用 第一时间想到 dump 当时的内存状态,但由于为了让线上尽快恢复服务,运维重启了机器,导致无法 dump 出事发时的内存。所以我又看了下我们 APM 中对 JVM 的监控图表 画外音: 一种方式不行,尝试另外的角度切入!再次强调,监控非常重要!完善的监控能还原当时的事发现场,方便定位问题。 不看不知道,一看吓一跳,从 16:00 开始应用中创建的线程居然每时每刻都在上升,一直到 3w 左右,重启后(蓝色箭头),线程也一直在不断增长),正常情况下的线程数是多少呢,600!问题找到了,应该是在下午 16:00 左右发了一段有问题的代码,导致线程一直在创建,且创建的线程一直未消亡!查看发布记录,发现发布记录只有这么一段可疑的代码 diff:在

深入理解HTML协议

和自甴很熟 提交于 2019-12-10 02:00:39
http 协议 学 习系列 1. 基础概念篇 1.1 介绍 HTTP 是 Hyper Text Transfer Protocol (超文本传输协议)的缩写。它的发展是万维网协会( World Wide Web Consortium )和 Internet 工作小组 IETF ( Internet Engineering Task Force )合作的结果,(他们)最终发布了一系 列的 RFC , RFC 1945 定义了 HTTP/1.0 版本。其中最著名的就是 RFC 2616 。 RFC 2616 定义了今天普遍使用的一个版本 ——HTTP 1.1 。 HTTP 协议( HyperText Transfer Protocol ,超文本传输协议)是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算 机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示 ( 如文本先于图形 ) 等。 HTTP 是一个应用层协议,由请求和响应构成,是一个标准的客户端服 务器模型。 HTTP 是一个无状态的协议。 1.2 在 TCP/IP 协议栈中的位置 HTTP 协议通常承载于 TCP 协 议之上,有时也承载于 TLS 或 SSL 协议层之上,这个时候,就成了我们常说的 HTTPS 。如下图所示: 默认 HTTP

HTTP2.0简明笔记

无人久伴 提交于 2019-12-10 00:02:50
版权声明:本文由史燕飞原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/82 来源:腾云阁 https://www.qcloud.com/community RFC2616发布以来,一直是互联网发展的基石。HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用。HTTP的简单本质是其快速发展的关键,但随着越来越多的应用被部署到WEB上,HTTP的问题慢慢凸显出来。今天,用户和开发者都迫切需要通过THHP1.1达到一种几近实时的响应速度和协议性能,而要满足这个需求,只在原有协议上进行修补是不够的。为了应对这些挑战,HTTP必须继续发展。HTTP工作组已经在2012年宣布要设计和开发HTTP2.0。HTTP2.0的主要目标是改进传输性能,实现低延迟和高吞吐量。 在HTTP2.0真正诞生之前,谷歌开发了一个实验性质的协议-SPDY,它定位于解决HTTP1.1中的一些性能限制,来减少网页的延时。自从2009年SPDY发布之后,这个协议得到了众多浏览器厂商和大型网站的支持,实践证明它确实可以很大幅度的提升性能,已经具备成为一个标准的条件。于是,HTTP-WG于2012年初提出要重在SPDY的一些实践基础上新设计和开发HTTP2.0,以期使数据传输具有更好的性能和更少的延时

实习日志(六)——关于开发必须了解的基础(一)

眉间皱痕 提交于 2019-12-09 21:11:34
以下是我今天恶补的基础知识点。 1 . URL 重写 定义:就是通过 url 地址字符串拼接的方式,将网站真实的 URL 隐藏起来,同时又达到了页面跳转的目的。 优点: a. 便于 SEO: 目前很多浏览器不支持动态页面的抓取,尤其是带有“?”的页面;总之搜索引擎对于静态页面的抓取比动态页面要好,如果我们将 http://www.xxx.com?year=2014 改写成 http://www.xxx.com/2014 那么将更加便页面被搜索引擎的抓取。 b. 防止盗链:由于 url 重写隐藏了真实的地址,可以防止他人盗用网站链接,增加了网站的安全行。 c. 隐藏了网站的实现技术,增加了网站的安全性:明明是用 php 写的网站,我可以在 URL 重写的时候写成“ .jsp ”。 d. 提高可以移植性 : :由于真实的 url 含有类似于 .asxp , .php 等真实的后缀,一旦修改了这些后缀名,就会损失点 PageRank ;但是 URL 重写则是由于隐藏了很多的细节,修改连接就不会损失 PageRank 。 e. URL 简单易记,增加美感。 f. 支持 URL “可删节”的要求:“可删节”是一个很重要的用户需求,如: http://www.xxx.com/article/2004/07 则会显示这个网站 2004 年 7 月份所有的文章;如果将地址改成: http:/

计算机网络 HTTP协议

試著忘記壹切 提交于 2019-12-09 19:51:00
HTTP协议( Hypertext transfer protocol 超文本传输协议 ) 预备知识: 1、HTTP协议是应用层协议,定义的是传输数据的内容的规范。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答标准。通过使用网页浏览器、网络爬虫或者其他工具,客户端发起一个HTTP请到 服务器上的指定端口(默认80 )。服务器上存储着一些资源,如HTML文件和图像等。 2、HTTP是一个应用层协议,由 请求和响应 构成,是一个标准的 客户端服务器模型 。HTTP是一个 无状态的协议。 3、HTTP默认的 端口号 为80 ,HTTPS的端口号为443。 4、 HTTP协议是一种详细规定 了 浏览器和万维网(WWW = World Wide Web)服务器 之间互相 通信的规则 ,通过 因特网 传送万维网 文档的数据 传送协议 。 5、URL(Uniform Resource Locator-统一资源定位符),URL是 万维网( WWW ) 上的每一 信息资源 对应的 统一的且在网上唯一 的 地址 。 URL 4部分组成:协议、主机、端口(省略时使用方案的默认端口)、路径。 URL 格式:protocol :// hostname[:port] / path / [;parameters][?query] #fragment 6、URL中 #号 (井号)的作用是 页面定位符

Zend framework处理一个http请求的流程

﹥>﹥吖頭↗ 提交于 2019-12-09 19:11:52
Zend framework处理一个http请求的流程 1, 首先是bootstrap过程,初始化程序里用到的资源 2, 创建一个Zend_Controller_Front实体,实现front controller模式,这个实体类会负责将http请求派遣到恰当的controller的action里。 3, Front controller会创建俩个对象来封装http请求和http回复,分别是Zend_Controller_Request_Http和Zend_Controller_Response_Http 4, Front controller会创建俩个对象来实现url寻路和派遣,分别是routing和dispatcher, 分别负责找到指定url应该执行的控制器和动作,和载入对应的程序文件并执行对应的方法。 5, 通过controller的plugin机制,Zend_Controller_Action_ViewRenderer会为controller的实体类创建一个view属性,这个view是一个Zend_View的实体对象。它还负责在controller action请求处理完成后,将相应的template文件render呈现到http response对象里。最后response对象的内容会由Front Controller输出到浏览器。 6, 在第五步中

HTTP基础知识

好久不见. 提交于 2019-12-09 16:03:15
Http 超文本传输协议 用于从万维网服务器传输超文本到本地浏览器的传送协议 Http协议是基于TCP的应用层协议,它不关心数据传输的细节,主要用来规定客户端和服务端的数据传输格式,最初用来向客户端传输HTML页面的内容。默认端口是80 http是基于请求与响应模式的,无状态的,应用层的协议 Http主要包括 请求报文 以及 响应报文 Http请求报文 请求行 (请求方法 资源地址(url) http版本) 请求头部 空行 请求正文 请求方法 请求头部 Http响应报文 状态行( http版本 状态码 状态代码文本描述 ) 响应报头 响应正文 状态码 响应报头 来源: https://www.cnblogs.com/hhs1998/p/12011426.html

HTTP简介

佐手、 提交于 2019-12-09 15:33:14
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.无连接

震惊!线上四台机器同一时间全部 OOM,到底发生了什么?

爷,独闯天下 提交于 2019-12-09 12:46:43
案发现场 昨天晚上突然短信收到 APM (即 Application Performance Management 的简称),我们内部自己搭建了这样一套系统来对应用的性能、可靠性进行线上的监控和预警的一种机制)大量告警 画外音: 监控是一种非常重要的发现问题的手段,没有的话一定要及时建立哦 紧接着运维打来电话告知线上部署的四台机器全部 OOM (out of memory, 内存不足),服务全部不可用,赶紧查看问题! 问题排查 首先运维先重启了机器,保证线上服务可用,然后再仔细地看了下线上的日志,确实是因为 OOM 导致服务不可用 第一时间想到 dump 当时的内存状态,但由于为了让线上尽快恢复服务,运维重启了机器,导致无法 dump 出事发时的内存。所以我又看了下我们 APM 中对 JVM 的监控图表 画外音: 一种方式不行,尝试另外的角度切入!再次强调,监控非常重要!完善的监控能还原当时的事发现场,方便定位问题。 不看不知道,一看吓一跳,从 16:00 开始应用中创建的线程居然每时每刻都在上升,一直到 3w 左右,重启后(蓝色箭头),线程也一直在不断增长),正常情况下的线程数是多少呢,600!问题找到了,应该是在下午 16:00 左右发了一段有问题的代码,导致线程一直在创建,且创建的线程一直未消亡!查看发布记录,发现发布记录只有这么一段可疑的代码 diff:在

Go的net/http

痞子三分冷 提交于 2019-12-09 11:49:09
函数 服务端函数 func Handle(pattern string, handler Handler)将handler按照指定的格式注册到 DefaultServeMux,ServeMux解释了模式匹配规则 func HandleFunc(pattern string, handler func(ResponseWriter, *Request))同上,主要用来实现动 态文件内容的展示,这点与ServerFile()不同的地方。 func ListenAndServe(addr string, handler Handler) error监听TCP网络地址addr然后调用具有 handler的Serve去处理连接请求.通常情况下Handler是nil,使用默认的DefaultServeMux func ListenAndServeTLS(addr string, certFile string, keyFile string, handler Handler) error该函数与ListenAndServe功能基本相同,二者不同之处是该函数需要HTTPS连接.也就是说,必须给该服务 Serve提供一个包含整数的秘钥的文件,如果证书是由证书机构签署的,那么证书文件必须是服务证书之后跟着CA 证书. func ServeFile(w ResponseWriter, r