http请求

跨域资源共享 CORS 详解以及IIS中的配置方法

随声附和 提交于 2020-03-22 05:35:20
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出 XMLHttpRequest 请求,从而克服了AJAX只能同源使用的限制。 本文详细介绍CORS的内部机制。 一、简介 CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。 二、两种请求 浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。 只要同时满足以下两大条件,就属于简单请求。 (1) 请求方法是以下三种方法之一: HEAD GET POST (2)HTTP的头信息不超出以下几种字段: Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三个值 application/x-www-form

ip地址和端口号

﹥>﹥吖頭↗ 提交于 2020-03-22 03:01:59
// ip 地址用来定位计算机 // 端口号用来定位具体的应用程序 // 所有需要联网通信的应用程序都会占用一个端口号 var http = require('http') var server = http.createServer() // 2. 监听 request 请求事件,设置请求处理函数 server.on('request', function (req, res) { console.log('收到请求了,请求路径是:' + req.url) console.log('请求我的客户端的地址是:', req.socket.remoteAddress, req.socket.remotePort) res.end('hello nodejs') }) server.listen(5000, function () { console.log('服务器启动成功,可以访问了。。。') }) 来源: https://www.cnblogs.com/lujieting/p/10296048.html

Http请求

五迷三道 提交于 2020-03-21 20:05:25
用的代理上网,就报错,以下是代码: package main import ( "fmt" "io/ioutil" "net/http" "regexp" "strings" ) func main() { resp, err := http.Get("http://www.5idesk.com/s/lol/") if err != nil { fmt.Println("http get error.") } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("http read error") return } src := string(body) //将HTML标签全转换成小写 re, _ := regexp.Compile("\\<[\\S\\s]+?\\>") src = re.ReplaceAllStringFunc(src, strings.ToLower) //去除STYLE re, _ = regexp.Compile("\\<style[\\S\\s]+?\\</style\\>") src = re.ReplaceAllString(src, "") //去除SCRIPT re, _ = regexp.Compile("\\

go 发送http请求

牧云@^-^@ 提交于 2020-03-21 20:04:08
普通的get请求 package main import ( "io/ioutil" "fmt" "net/http" ) func main() { res,_ :=http.Get("https://www.baidu.com/") defer res.Body.Close() body,_ := ioutil.ReadAll(res.Body) fmt.Print(body) } 带参数的get请求(参数不放在url里) package main import ( "fmt" "io/ioutil" "net/http" "net/url" ) func main(){ params := url.Values{} Url, _:= url.Parse("https://www.baidu.com/") params.Set("name","zhaofan") params.Set("age","23") //如果参数中有中文参数,这个方法会进行URLEncode Url.RawQuery = params.Encode() urlPath := Url.String() fmt.Println(urlPath) //等同于https://www.xxx.com?age=23&name=zhaofan resp,_ := http.Get(urlPath) defer

nginx防DDOS攻击的简单配置

余生颓废 提交于 2020-03-21 14:55:29
  近期由于工作需要,做了些防DDOS攻击的研究,发现nginx本身就有这方面的模块ngx_http_limit_req_module和ngx_http_limit_conn_module。 一、基本介绍   1.ngx_http_limit_req_module   配置格式及说明:   设置一个缓存区保存不同key的状态,这里的状态是指当前的过量请求数。而key是由variable指定的,是一个非空的变量,我们这里使用$binary_remote_addr,表示源IP为key值。 limit_req_zone $variable zone=name:size rate=rate;   指定要进行限制的缓存区和最大的请求到达后有多少个请求放入延迟队列(其它的直接丢弃)。如果不希望请求数达到上限而被延迟,就需要使用nodelay。 limit_req zone=name [burst=number] [nodelay];   例子:   缓存区为10M,请求限制为每秒1次,延迟队列为5 http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ... server { ... location /search/ { limit_req zone=one burst=5; }}   2.ngx_http

HTTP协议详解

早过忘川 提交于 2020-03-21 07:46:05
一.HTTP简介 1. HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 2. HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图: 3. HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。 4. HTTP默认的端口号为80,HTTPS的端口号为443。 5. 浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用HTTP协议(还包括其他的协议)。 二.HTTP特点 1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 3. HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求

servlet的一些应用

≯℡__Kan透↙ 提交于 2020-03-21 07:44:47
Request 对象: 问题: 浏览器发起请求到服务器,会遵循HTTP 协议将请求数据发送给服务器。 那么服务器接受到请求的数据改怎么存储呢?不但要存,而且要保证完成性。 解决: 使用对象进行存储,服务器每接受一个请求,就创建一个对象专门的存储此次请求的请求数据。 request 对象解释: 服务器接收到浏览器的请求后,会创建一个 Request 对象,对象中存储了此次请求相关的请求数据。服务器在调用 Servlet 时会将创建的Request 对象作为实参传递给 Servlet 的方法,比如:service 方法。 使用: 获取请求头数据 获取请求行数据获取用户数据 读取 HTTP 头的方法 下面的方法可用在 Servlet 程序中读取 HTTP 头。这些方法通过 HttpServletRequest 对象可用。 方法 & 描述: Cookie[] getCookies() 返回一个数组,包含客户端发送该请求的所有的 Cookie 对象。 Object getAttribute(String name) 以对象形式返回已命名属性的值,如果没有给定名称的属性存在,则返回 null。 String getCharacterEncoding() 返回请求主体中使用的字符编码的名称。 String getContextPath() 返回指示请求上下文的请求 URI 部分。 String

Web开发之HTTP协议

淺唱寂寞╮ 提交于 2020-03-21 01:45:09
HTTP响应消息 一个HTTP响应代表服务器向客户端回送的数据。 一个完整的HTTP响应包括如下内容: 一个状态行、若干消息头、以及响应正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空行隔开。 例如: HTTP/1.1 200 OK //状态行 Server: Microsoft-IIS/5.0 //消息头,以下都是 Date: Thu, 13 Jul 2000 05:46:53 GMT Content-Length: 2291 Content-Type: text/html Cache-control: private //消息头,以上都是 //空格隔开 <HTML> //实体内容 <BODY> …… 状态行:用于描述服务器对请求的处理结果 消息头:用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据 实体内容:代表服务器向客户端回送的数据 HTTP响应的细节——常用状态码 200(正常) 表示一切正常,返回的是正常请求结果 302/307(临时重定向) 指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出。 304(未修改) 表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。 404(找不到) 服务器上不存在客户机所请求的资源。 500

HTTP协议

*爱你&永不变心* 提交于 2020-03-20 23:51:13
1、HTTP简介 WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循HTTP协议。HTTP是TCP/IP协议的一个应用层协议,用于定义WEB服务器之间交换数据的过程及数据本身的格式。常见的HTTP协议版本有HTTP/1.0和HTTP/1.1。 2、HTTP1.0的基本运行方式 基于HTTP协议的客户/服务器模式的信息交换过程,如下图所示,它一共有四个过程:建立连接、发送请求信息、发送响应信息和关闭连接。 浏览器和WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接。 浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应。 无状态 3、浏览器访问多图网页 在一个HTML页面中如果包含 <img> 标记的话,当浏览器解析到这些标记的时候,还会向服务器请求访问标记中指定的文件,即再次建立连接并发出HTTP请求。 如果HTML页面中有一个超级链接: <a href=”http://www.itcast.cn”>itcast</a> ,当点击这个链接时,也会触发浏览器与WEB服务器开始一次新的HTTP通信。 4、HTTP1.1详解 HTTP1.1的特点: 在一个TCP连接上可以传送多个HTTP请求和响应 多个请求和响应过程可以重叠 增加了更多的请求头和响应头,比如Host 、if-Unmodified

Http协议

我们两清 提交于 2020-03-20 23:50:43
简介 HTTP(Hyper Text Transfer Protocol)是超文本传输协议。它是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。 HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。 浏览器和服务器信息交换过程: 1.建立连接 2.发送请求信息 3.回送响应信息 4.关闭连接 由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。 HTTP协议是一个无状态的协议 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。