http请求

创建Dynamic Web Project工程

大兔子大兔子 提交于 2019-12-23 12:59:36
一.web环境搭建 1. Web服务器 (1) Web服务器主要用来接收客户端发送的请求和响应客户端请求。 (2) 作为JavaWeb程序来说,还需要有Servlet容器,容器的主要作用就是调用java程序处理用户发送的请求,并响应指定的资源,关于Servlet容器我们还需要一点一点学习。 (3) 开发JavaWeb项目Web服务器和Servlet容器是必须的,通常情况二者是合在一起的。 (4) 常见的JavaWeb服务器: Tomcat(Apache):当前应用最广的JavaWeb服务器; JBoss(Redhat红帽):支持JavaEE,应用比较广; GlassFish(Orcale):Oracle开发JavaWeb服务器,应用不是很广; Resin(Caucho):支持JavaEE,应用越来越广; Weblogic(Orcale):要钱的!支持JavaEE,适合大型项目; Websphere(IBM):要钱的!支持JavaEE,适合大型项目; 2. Tomcat 2.1 Tomcat概述 (1). Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat

实例讲解Nginx下的rewrite规则

主宰稳场 提交于 2019-12-23 10:42:55
一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。 使用last和break实现URI重写,浏览器地址栏不变。而且两者有细微差别,使用alias指令必须用last标记;使用proxy_pass指令时,需要使用break标记。Last标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求,而break标记则在本条规则匹配完成后,终止匹配。 例如:如果我们将类似URL/photo/123456 重定向到/path/to/photo/12/1234/123456.png rewrite "/photo/(

Spring MVC基础入门

只谈情不闲聊 提交于 2019-12-23 02:04:36
Spring MVC简介 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 Spring Web MVC处理请求的流程: 具体执行步骤如下: 1、 首先用户发送请求到前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它; 2、 页面控制器接收到请求后,进行功能处理,处理请求和创建相应的Model,处理完毕后返回一个ModelAndView(模型数据和逻辑视图名); 3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染; 4、 前端控制器将响应返回给用户,至此整个结束。 Spring MVC Demo 写一个简单的例子来说明Spring MVC是如何工作的,该例子默认启动一个欢迎页面,并有一个login的页面,输入用户名和密码,当用户名和密码不为空返回“登录成功”,当输入有空时,则停留在login页面,例子非常简单。 新建一个Dynamic Web Project。 看web.xml的配置: <?xml version="1.0"

Django中的视图(view)

[亡魂溺海] 提交于 2019-12-23 00:39:28
视图 1.什么是视图   视图就是Django项目下的view.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相当于一个中央情报处理系统 2.具体视图实例 3.CBV和FBV   视图文件中除了上面的用一系列的函数来对应处理客户端请求的数据逻辑外,还可以通过定义类来处理相应的逻辑,首先第一步 要想真正让CBV的方式凑效,光在视图文件中改动是不够的 所以才CBV模式下,我们可以自定义dispatch方法,来控制之下真正的方法之前之后的一些行为,达到装饰器的效果! Request对象和Response对象 request对象   当一个页面数据被请求时,Django就会将请求的所有数据自动传递给约定俗称的request这个参数,而我们只需要拿到这个参数并对其进行一系列的操作即可获得所有与操作有关的数据 1.操作request对象的相应方法 path_info 返回用户访问url,不包括域名 method 请求中使用的HTTP方法的字符串表示,全大写表示。 GET 包含所有HTTP GET参数的类字典对象 POST 包含所有HTTP POST参数的类字典对象 body 请求体,byte类型 request.POST的数据就是从body里面提取到的 属性 属性:   django将请求报文中的请求行、头部信息、内容主体封装成

HTTP请求流程你了解了么?

萝らか妹 提交于 2019-12-22 22:52:14
预备知识 前文没有描述到传输和协议直接的层级对应关系,大概补充下网络通信中数据传输对应的协议,首先了解下OSI(开放式系统互联:Open System InterConnection)七层 模式,及其对应不同层次的协议。 OSI体系结构 TCP/IP相关协议结构 应用层 HTTP,Telnet,FTP等 表示层 会话层 传输层 TCP,UDP 网络层 IP 数据链路层 物理层 了解到HTTP协议是建立在TCP连接基础之上的。 HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础 ,通常由浏览器发起请求,用来获取不同类型的文件, 例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。 我们对HTTP不太了解的话都会存在这样的疑惑,为什么再次访问同一站点会比第一次快,登录过一次后的网站再次访问就处于登录状态等,我们 通过对HTTP请求过程的剖析来解开这些谜团。 浏览器端发起 HTTP 请求流程 浏览器输入网址: http://time.geekbang.org/index.html,之后会完成什么步骤呢 ? 1、构建请求 首先,浏览器构建 请求行 信息,构建好后,浏览器准备发起网络请求。 GET /index.html HTTP1.1 2、查找缓存 在真正发起网络请求之前

http服务器返回状态代码含义

最后都变了- 提交于 2019-12-22 20:28:30
100 - 表示已收到请求的一部分,正在继续发送余下部分。   101 - 切换协议。   2xx - 成功。服务器成功地接受了客户端请求:   200 - 确定。客户端请求已成功。   201 - 已创建。   202 - 已接受。   203 - 非权威性信息。   204 - 无内容。   205 - 重置内容。   206 - 部分内容。   300 - 针对收到请求,服务器可执行多种操作。   301 - 永久移动转移,请求的内容已永久移动其他新位置。 302 - 临时移动转移,请求的内容已临时移动新的位置。   304 - 未修改。自从上次请求后,请求的内容未修改过。   307 - 临时重定向。服务器目前从不同位置响应请求,但请求者应继续使用原有位置来进行以后的请求。   400 - 错误的请求。   401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:   401.1 - 登录失败。   401.2 - 服务器配置导致登录失败。   401.3 - 由于 ACL 对资源的限制而未获得授权。   401.4 - 筛选器授权失败。   401.5 - ISAPI/CGI 应用程序授权失败。   401.7 - 访问被 Web 服务器上的 URL 授权策略拒绝

深入浅出:5G和HTTP

∥☆過路亽.° 提交于 2019-12-22 20:19:06
本文将会讲到5G和HTTP。曾经在 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3 提到为什么有些RPC框架不选用HTTP,而5G会采用HTTP。 您可以从本文里获取到一些概念:5G用HTTP作为reference point interface的实现,HTTP/2,RESTful API/HATEOAS/OpenAPI等最佳实践和标准,这些都是一些常见但是又容易忽略的知识点。 本文参考了一些文章,见文章末尾的链接列表。 HTTP的优点和缺点 我们大家知道HTTP协议包含的信息太多,太繁重,导致消息体会很大,但是其中有一些消息根本用不上,这也是为什么HTTP/1.1消息效率不高的原因,所以一些RPC框架舍弃它,例如dubbo定义自己的协议等,如果大家定义过协议,例如类似TCP协议,就能明白协议定义的重要性。如果要效率高,消息短,那就会太底层,如TCP,如果要想易于理解,例如HTTP,那就得长一些。 5G和HTTP 5G明年试商用,在5G里采用HTTP协议,确实有意思。可以参看TS 29.501协议 5G System;Principles and Guidelines for Services Definition,Stage 3。先看看下图: 在通信领域,由原来的Diameter,AAA等转变为HTTP,的确是一个大变化,但是开发的效率将会大大提高

1.4requests的简单使用

[亡魂溺海] 提交于 2019-12-22 19:23:09
问题:为什么要学习requests,而不是urllib? 1、requests的底层实现就是urllib 2、requests在python2 和python3中通用,方法完全一样 3、requests简单易用 4、requests能够自动帮助我们解压(gzip压缩的等)网页内容 Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。 Requests 继承了urllib的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。 requests 的底层实现其实就是 urllib Requests的文档非常完备,中文文档也相当不错。Requests能完全满足当前网络的需求,支持Python 2.6–3.5,而且能在PyPy下完美运行。 开源地址:https://github.com/kennethreitz/requests 中文文档 API: http://docs.python-requests.org/zh_CN/latest/index.html 安装方式

HTTP 初识 (概述)

孤街浪徒 提交于 2019-12-22 16:31:16
一、概述 一)、资源标识 URI: 英特网上标记某个资源的字符串 URL:英特网上某个资源所在的位置,http协议://域名/资源路径 二)、MIME 传输的数据对象类型 text/html text/plain image/jpeg等等 三)、HTTP事务 一次客户端到服务器的请求命令与响应结果。 四)、HTTP方法 所谓方法就是请求命令。常见的GET、POST就是其中之一,此外还有PUT、DELETE、HEAD等等 五)、状态码 服务器响应客户端请求,若请求成功,则在响应消息中会有一个状态码,标识该次http请求状态 200:ok,正常返回 404:无法找到 302:资源重定向 一般状态码还有附带一句描述,对当前出现的状态码的说明 六)、报文 http报文由字符串组成 请求报文和响应报文组成了事务 具体信息可以在浏览器的控制台查看某一条访问请求,NETWORK分类下有详细的说明。 七)、连接 HTTP 基于TCP/IP 根据URL访问 > 通过DNS解析 > 客户端向服务器发送请求 > 服务器响应 > 断开连接 来源: CSDN 作者: 打死一个嘤嘤怪 链接: https://blog.csdn.net/q1779020410/article/details/103651163

springMVC中对HTTP请求form data和request payload两种数据发送块的后台接收方式

让人想犯罪 __ 提交于 2019-12-22 11:32:32
最近在做项目中发现,前台提交数据时,如果通过form表单提交和ajax发送json时,springMVC后台接收不能都通过@ModelAttribute方式处理,经过一番查找后,ajax发送json请求时,后台是通过 @ResponseBody来接收数据的。但我不满足于此,对此进行了更多的研究,归纳如下: 一,form表单和ajax发送json请求提交查询请求头显示分布如下图, 经过比较后,得出 结论一; 如果请求的Content-Type设置为application/x-www-form-urlencoded,那么这个Post请求被认为是HTTP POST表单请求,参数出现在form data;其他情况如使用原生AJAX的POST请求如果不指定请求头Request Header,默认使用的Content-Type是text/plain;charset =UTF-8,或者application/json ,参数出现在Request payload块。 如果项目只是进行到此,那就太简单了,不至于此,前面已经说过了,参数出现在form data 后台通过@ModelAttribute接收,也可以通过@RequestParam接收参数;Request payload块后台通过@RequestBody接收。但是问题又来了,通过这两种方式接收数据,在接收数据前