http请求

nodejs基础 -- express框架

自作多情 提交于 2020-02-07 02:25:53
Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。 安装 Express 安装 Express 并将其保存到依赖列表中: $ npm install express --save 以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。 以下几个重要的模块是需要与 express 框架一起安装 的: body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。 cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。 multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

Node.js- Express框架

寵の児 提交于 2020-02-07 01:10:36
一、Express简介 1.Express是一个简洁而灵活的node.jsWeb应用框架,提供了一系列强大特性帮助你创建各种web应用,和丰富的http工具。 2.使用Express可以快速搭建一个完整功能的网站。 3.Express框架核心特性 1.1 可以设置中间件来响应HTTP请求 1.2 定义来路由表用于执行不同的HTTP请求动作 1.3 可以通过向模版传递参数来动态渲染HTML页面 二、安装Express 以上命令会将Express框架安装在当前目录的node_modules目录中,node_modules目录下会自动创建express目录。 以下几个重要的模块是需要与express框架一起安装的: 1. body-parser - node.js中间件,用于处理JSON,Raw,Text和URL编码的数据。 2. cookie-parser - 这就是一个解析cookie的工具。通过req.cookies可以去到传过来的cookie,并把他们转成对象。 3. multer - node.js中间件,用于处理enctype="multipart/form-data" (设置表单的MIME编码)的表单数据。 三、Express实例 执行结果为: 四、请求和响应 express应用使用回调函数的参数,request和response对象来处理请求和响应的数据。 app.get

跨域与防止表单重复提交

为君一笑 提交于 2020-02-06 15:19:46
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 常见跨域场景 URL 说明 是否允许通信 http://www.domain.com/a.js http://www.domain.com/b.js 同一域名,不同文件或路径 允许 http://www.domain.com/lab/c

web开发之http和wsgi

我们两清 提交于 2020-02-06 10:58:11
web开发也就是前端和后端,首先理解一下前后端分离技术,其实说的后端代码和前端代码分割开来。不然不利于前端和后端分别开发。 web开发 CS即客户端、服务端编程。传统的socket开发。 客户端、服务端之间需要使用socket,约定协议,版本(往往使用的协议是TCP或者UDP),指定地址和端口,就可以通信了。客服端、服务端传输数据,数据可以有一定的格式,双方必须先约定好。 BS编程,即Brower、Server开发。 brower浏览器,是一种特殊的 客户端,支持http(s)协议,能够通过URL向服务器发起请求,等待服务器返回HTML等数据,并在浏览器内可视化展示的程序。 SERVER,支持http协议,能够接受众多客户端发起的http协议请求,经过处理,将HTML等数据返回给浏览器。 本质上来说,BS是一种特殊的CS,即 客户端必须是一种支持http协议且能解析并渲染html的软件,服务端必须是能够接受多客户端http访问的服务器软件。 http协议底层是基于tcp协议实现。 BS开发分为两端开发。 客户端开发——或称前端开发。HTML(控制格式),css(控制样式),JavaScript等。 服务端开发, python有WSGI,django,flask,tornado等。 http协议 http协议是 无状态协议 。同一个客户端的两次请求之间并没有任何关系,从服务端角度来说

爬虫_chap1网络请求

蓝咒 提交于 2020-02-06 05:29:35
文章目录 爬虫_chap1网络请求 01.前奏 准备工具: 通用/聚焦 02.http和https协议: url详解:scheme,host,port,path,query-string,anchor 常用的请求方法:get获取, post上传 请求头header常见参数:user-angent,referer,cookie 常见响应状态码: 03.urllib库 urlopen函数:得到response,默认请求get,设置data成为post urlretrieve函数:下载到本地 urlencode函数:把字典数据转换为`URL`编码的数据 parse_qs函数:解码 urlparse和urlsplit:分割组分为scheme,netloc,path,query,params等 request.Request类:用自定义请求头发送请求(request.urlopen) 内涵段子爬虫实战作业: ProxyHandler处理器(代理设置):用自定义opener来使用代理 什么是cookie: cookie的格式: 使用cookielib库和HTTPCookieProcessor模拟登录: http.cookiejar`模块`: 登录人人网: 保存cookie到本地: 从本地加载cookie: 04.requests库 安装和文档地址: 发送GET请求: 发送POST请求:

Servlet之HTTP请求

别来无恙 提交于 2020-02-06 02:55:15
文章目录 1.Http传输协议 2. 请求消息数据格式 2.1 请求行 2.2 请求头 2.3 请求空行 2.4请求体 3.响应消息数据格式 1.Http传输协议 PS:这里只是做简单的介绍,更详细的会在后面俺系统学习网络知识时再详细写。 概念:Hyper Text Transfer Protocol 超文本传输协议 传输协议:定义了客户端和服务器端通信时发送数据的格式 客户端给服务器发送请求消息,服务器在接收到客户端发来的消息后,服务器会再给客户端回应一个响应消息 Http传输协议就是服务器与客户端之间消息内容的标准,双方有了一个标准(约定)后,才能彼此建立通信 那么,问题来了??我打开一次百度首页,服务器需要给我的PC响应几次呢? 这段话写的很好,送给即将秋招毕业的自己和大家,一起加油吧! 你在电脑前看这段文字, 写文字的人在百度等你。 N年前你来到了这个世界, N年后你想改变世界。 期待你脚踏祥云, 与百度一起改变世界。 答案是响应多次 在Network这一栏,每一个Name就是对应一次请求。 每一个图片,js,css文件都是单独的请求,他们都是独立请求的。先建立连接,然后发送数据,最后断开连接。然后这个页面的每一个资源都是如此。所以发送了多次请求! 特点 基于 TCP / IP 的高级协议 默认端囗号: 80 基于 请求/响应 模型的:一次请求对应一次响应 无状态的

nginx-学习笔记2

╄→尐↘猪︶ㄣ 提交于 2020-02-06 00:04:26
nginx有几个基本概念 1.connection 2.request 3.keepalive 4.pipe 5.lingering_close 1.connection 结合一个tcp连接的生命周期,我们看看nginx是如何处理一个连接的。首先,nginx在启动时,会解析配置文件,得到需要监听的端口与ip地址,然后在nginx的master进程里面,先初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的ip地址端口,再listen),然后再fork出多个子进程出来,然后子进程会竞争accept新的连接。此时,客户端就可以向nginx发起连接了。当客户端与服务端通过三次握手建立好一个连接后,nginx的某一个子进程会accept成功,得到这个建立好的连接的socket,然后创建nginx对连接的封装,即ngx_connection_t结构体。接着,设置读写事件处理函数并添加读写事件来与客户端进行数据的交换。最后,nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。 在nginx中,每个进程会有一个连接数的最大上限,这个上限与系统对fd的限制不一样。在操作系统中,通过ulimit -n,我们可以得到一个进程所能够打开的fd的最大数,即nofile,因为每个socket连接会占用掉一个fd,所以这也会限制我们进程的最大连接数

前端需要了解的HTTP协议

此生再无相见时 提交于 2020-02-05 20:49:51
目录 HTTP协议 HTTP概述 HTTP之URL HTTP状态码 HTTP首部 HTTP首部字段 HTTP通用首部字段 HTTP请求首部字段 HTTP工作原理 HTTP报文内的HTTP信息 HTTP之请求消息Request HTTP之响应Response get请求和post请求 get请求 post请求 post和get请求的区别 HTTP协议 @ HTTP概述 http协议是用来规定客户端和服务器间通信的报文的格式的; 客户端和服务器端通信的内容称为报文; 客户端和服务器间通信是基于请求和响应的模式的;客户端给服务器发送请求报文,服务器给客户端返回响应报文; 服务器:接收请求返回响应; 请求 request 响应 response http客户端和服务器端 客户端发送给服务器的请求就相当于是客户端给服务器写信(请求报文); 服务器返回的相应就相当于服务器给客户端写回信(响应报文); http协议就是规定客户端和服务器端传输的协议; HTTP之URL HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息; URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。 以下面这个URL为例

Nginx模块

你说的曾经没有我的故事 提交于 2020-02-05 15:02:40
Nginx模块 ngx_http_core_module 模块 帮助文档: http://nginx.org/en/docs/http/ngx_http_core_module.html 与套接字相关的配置: 1 、server { ... } 配置一个虚拟主机 server { listen address[:PORT]|PORT; server_name SERVER_NAME; root /PATH/TO/DOCUMENT_ROOT; } 2 、listen PORT|address[:port]|unix:/PATH/TO/SOCKET_FILE listen address[:port] [default_server] [ssl] [http2 | spdy][backlog=number] [rcvbuf=size] [sndbuf=size] default_server 设定为默认虚拟主机 ssl 限制仅能够通过ssl 连接提供服务 backlog=number 超过并发连接数后,新请求进入后援队列的长度 rcvbuf=size 接收缓冲区大小 sndbuf=size 发送缓冲区大小 注意: (1) 基于port; ; listen PORT; 指令监听在不同的端口 (2) 基于ip 的虚拟主机 listen IP:PORT; IP 地址不同 (3)

HTTP报文

。_饼干妹妹 提交于 2020-02-05 13:53:20
HTTP请求报文 请求方式 GET请求:向指定URL请求资源 POST请求:向指定URL提交待处理的数据 URL URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来唯一的标识一个资源。 协议版本 格式为HTTP/主版本号.次版本号,常用为:HTTP/1.1 HTTP/1.0 请求头部 Host:接受请求的服务器地址,可以是IP或者是域名 User-Agent:发送请求的应用名称 Connection:指定与连接相关的属性,例如(Keep_Alive,长连接) Accept-Charset:通知服务器端可以发送的编码格式 Accept-Encoding:通知服务器端可以发送的数据压缩格式 Accept-Language:通知服务器端可以发送的语言 请求正文 HTTP响应报文 协议版本 同请求报文 状态码 100-199表示请求已收到继续处理,200-299表示成功,300-399表示资源重定向,400-499表示客户端请求出错,500-599表示服务器端出错 200:响应成功 302:跳转,重定向 400:客户端有语法错误 403:服务器拒绝提供服务 404:请求资源不存在 500:服务器内部错误 响应头部 Server:服务器应用软件的名称和版本 Content-Type:响应正文的类型 Content-Length:响应正文的长度