http请求

Java web拦截恶意请求

时光总嘲笑我的痴心妄想 提交于 2020-01-14 18:36:16
本文拦截恶意请求,是通过,检测http请求是否是ajax。 因为 ajax 和 普通http请求 是不同, 不了解的可以看这篇文章 https://www.cnblogs.com/mrelk/p/7138423.html public static boolean isAjax ( HttpServletRequest request ) { if ( null == request ) { request = RequestHolder . getRequest ( ) ; } if ( null == request ) { return false ; } return "XMLHttpRequest" . equalsIgnoreCase ( request . getHeader ( "X-Requested-With" ) ) || request . getParameter ( "ajax" ) != null ; } RequestHolder是获取每次请求的 HttpServletRequest对象的工具类 。 来源: CSDN 作者: 多少可以试试Lk 链接: https://blog.csdn.net/weixin_44580977/article/details/103949857

HTTP协议

风格不统一 提交于 2020-01-14 16:20:12
HTTP协议是什么 http协议也就叫做超文本传输协议,也就是定义你怎么请求网页数据的。 主要的特点是:无状态 什么是无状态呢? 其实说白了就是没有记忆力。就像我们一下子就忘记了刚才做了什么。这个鸭子导致如果你后来处理信息如果用到之前的信息了,就需要重传 怎么解决无状态呢? 那我们就让他的状态保持住。那么什么是状态保持呢?其实无状态的意思本身就是说每一个http请求都是独立的,互不相关。那么我们让他进行状态保持就是可以把上一个请求处理的页面信息部分的传到后面所需要的页面中。 状态保持的方法主要有四个:隐藏域、Session、Cookie、网址重写 具体四种状态保持方法 HTTP的请求 首先我们需要知道http请求是由三部分组成的:① 请求方法/协议/版本、② 请求头、③ 请求体,具体如下图所示: 请求头中的头部字段名称的含义: HTTP的响应报文 响应报文主要由3个部分组成:① 状态行、② 响应头、③ 响应体 下面我们来说一下常见的状态码类别 详细的状态码解释 http协议不同版本的区别 来源: CSDN 作者: make_1998 链接: https://blog.csdn.net/make_1998/article/details/103754765

Curl模拟Http请求

冷暖自知 提交于 2020-01-14 15:59:42
格式: curl [-H 'k1:v1' -H 'k2:v2' -H 'k3:v3' ... -H 'kn:vn'] http://xxx.xxx.com [ ] 里面的内容是可选项,-H表示http请求中header内容。 curl -H 'AccessKey:a338c92c-be3d-4650-8c2d-ccc0be95bea8' -H 'Timestamp:1577265662331' -H 'ExpirationPeriod:600000' -H 'Signature:VI3f7YtkHA13MzIj0DCgXOJS9v84DlgxZKlBAWWo8g8=' 'http://xxx.xxx.com/ds/v1/algorithms?pageIndex=1&pageSize=10&search=&algorithmStatus=RELEASED' >> /Users/psb/output.txt 来源: CSDN 作者: 午夜阳光psb 链接: https://blog.csdn.net/u013514928/article/details/103749263

使用Java实现简单的Http服务器

北战南征 提交于 2020-01-14 15:59:33
在Java中可以使用HttpServer类来实现Http服务器,该类位于com.sun.net包下(rt.jar)。实现代码如下: 主程序类 package bg.httpserver; import com.sun.net.httpserver.HttpServer; import java.io.IOException; import java.net.InetSocketAddress; import java.util.concurrent.Executors; public class HttpServerStarter { public static void main(String[] args) throws IOException { //创建一个HttpServer实例,并绑定到指定的IP地址和端口号 HttpServer httpServer = HttpServer.create(new InetSocketAddress(8080), 0); //创建一个HttpContext,将路径为/myserver请求映射到MyHttpHandler处理器 httpServer.createContext("/myserver", new MyHttpHandler()); //设置服务器的线程池对象 httpServer.setExecutor(Executors

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

你说的曾经没有我的故事 提交于 2020-01-14 15:57:26
nginx+uWSGI+django+virtualenv+supervisor发布web服务器 导论 WSGI是Web服务器网关接口。它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架有Bottle,Django,Flask,用于解析动态HTTP请求 支持WSGI的服务器 wsgiref python自带的web服务器 Gunicorn 用于linux的 python wsgi Http服务器,常用于各种django,flask结合部署服务器。 mode_wsgi 实现了Apache与wsgi应用程序的结合 uWSGI C语言开发,快速,自我修复,开发人员友好的WSGI服务器,用于Python Web应用程序的专业部署和开发。 在部署python程序web应用程序时,可以根据性能的需求,选择合适的wsgi server,不同的wsgi server区别在于并发支持上,有单线程,多进程,多线程,协程的区别,其功能还是近似,无非是请求路由,执行对应的函数,返回处理结果。 Django部署 Django的主要部署平台是 WSGI,这是用于Web服务器和应用程序的Python标准。 Django的 startproject管理命令设置一个简单的默认WSGI配置

HTTP报文分析

≯℡__Kan透↙ 提交于 2020-01-14 12:34:47
HTTP请求(request) http请求的格式如下图 http请求报文的构成如下图 其中请求头具体含义可以参考博客 HTTP 请求头各参数具体含义 HTTP响应(response) http响应的格式如下图 http响应报文的格式如下图 其中响应头具体含义可以参考博客 HTTP 请求头各参数具体含义 如何通过F12来分析HTTP报文 浏览器中按下F12界面信息如下 通用信息头 General 既能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,可以理解为为了一眼瞄过去,就能了解报文信息而存在。 Request URL:请求的URL Request Method:请求的方法类型 Status Code:响应的状态码和结果 Remote Address:远程服务器地址 Referrer Policy:从哪个页面跳转过来的,图中的含义为:当发生降级(比如从 https:// 跳转到 http:// )时,不传递 Referrer 报头。 响应头 Response Headers Connection:当前连接是否保持 Content-Encoding:与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码 Content-Type:返回的响应MIME类型与编码,用于告诉浏览器它发送的数据属于什么文件类型 Date

Python爬虫之requests库介绍(一)

我与影子孤独终老i 提交于 2020-01-14 09:20:28
一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:) Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。 requests 的底层实现其实就是 urllib3 Requests的文档非常完备,中文文档也相当不错。Requests能完全满足当前网络的需求,支持Python 2.6—3.5,而且能在PyPy下完美运行。 开源地址: https://github.com/kennethreitz/requests 中文文档 API: http://docs.python-requests.org/zh_CN/latest/index.html 二:安装方式  1.强烈建议大家使用pip进行安装:pip insrall requests  2.Pycharm安装:file-》default settings-》project

HTTP POST GET 区别

[亡魂溺海] 提交于 2020-01-14 07:46:46
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是 GET,POST,PUT,DELETE URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息( 个人认为这是GET和POST的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异 )。 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的 。   1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。   2.幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下 幂等 这个概念: 幂等 (idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。 幂等有以下几种定义:  

Http协议

不羁岁月 提交于 2020-01-14 07:22:51
HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的 一种网络协议。所有的 WWW文件都必须遵守这个标准。设计HTTP最初的目的是为 了提供一种发布和接收 HTML页面的方法。 Http协议由Http请求和Http响应组成, 1)请求行 请求方式: POST、GET 请求的资源: /DemoEE/form.html 协议版本: HTTP/1.1 HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。 HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。 2)请求头 请求头是客户端发送给服务器端的一些信息,使用键值对表示 key:value 3)请求体 当请求方式是 post的时,请求体会有请求的参数,格式如下: username=zhangsan&password=123 如果请求方式为 get,那么请求参数不会出现在请求体中,会拼接在url地址后面 http://localhost:8080...?username=zhangsan&password=123 2.Http响应 1)响应行 Http协议 状态码: 常用的状态码如下: 200 :请求成功。 302 :请求重定向。 304 :请求资源没有改变,访问本地缓存。 404 :请求资源不存在。通常是用户路径编写错误

python-Django-web框架

自作多情 提交于 2020-01-13 21:32:15
Django框架的介绍 2005年发布,采用Python语言编写的开源web框架 早期的时候Django主做新闻和内容管理的 一个重量级的 Python Web框架,Django 配备了常用的大部分组件 基本配置 路由系统 原生HTML模板系统 视图 view Model模型,数据库连接和ORM数据库管理 中间件 Cookie & Seesion 分页 数据库后台管理系统admin Django的用途 网站后端开发 微信公众号、微信小程序等后台开发 基于HTTP/HTTPS协议的后台服务器开发 在线语音/图像识别服务器 在线第三方身份验证服务器等 Django的版本 最新版本:2.2.x 当前教学版本:1.11.8 Django的官网 官方网址: http://www.djangoproject.com 中文文档(第三方): https://yiyibooks.cn/ http://djangobook.py3k.cn/ Django的离线文档 解压缩数据包 django-docs-1.11-en.zip 用浏览器打开 django-docs-1.11-en/index.html Django的安装 查看已安装的版本 >> > import django >> > print ( django . VERSION ) ( 1 , 11 , 8 , 'final' , 0 ) 安装