http请求

HttpContext

懵懂的女人 提交于 2020-03-03 09:36:13
https://www.cnblogs.com/DSC1991/p/8674960.html 一:HttpContext理论知识: 1:HttpContext类它对Request、Respose、Server等等都进行了封装,并保证在整个请求周期内都可以随时随地的调用;为继承 IHttpModule 和 IHttpHandler 接口的类提供了对当前 HTTP 请求的 HttpContext 对象的引用。该对象提供对请求的内部Request、Response 和 Server 属性的访问。HttpContext的命名空间:System.Web(在 system.web.dll 中);除了对几个对象进行封装外它还有个HttpContext.Item,通过它你可以在HttpContext的生存周期内提前存储一些临时的数据,方便随时使用。 2:生存周期:从客户端用户点击并产生了一个向服务器发送请求开始---服务器处理完请求并生成返回到客户端为止。针对每个不同用户的请求,服务器都会创建一个新的HttpContext实例直到请求结束,服务器销毁这个实例。 3:当我们创建一个一般处理程序Handler.ashx时,我们可以在文件中看到这一句 public void ProcessRequest (HttpContext context); 4:可以通过HttpContext

HTTP探索之初学乍练

戏子无情 提交于 2020-03-03 08:02:36
一、什么是HTTP? Hypertext Transfer Protocol(HTTP)协议(RFC7230) 一种无状态的、应用层、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。 二、HTTP请求行与响应行 请求行格式(ABNF方式描述) Request-line = method SP request-target SP HTTP-version CRLF HTTP常见方法(RFC7231) GET:主要的获取信息方法,大量的性能优化都针对该方法,幂等方法 HEAD:类似GET方法,但服务器不发送BODY,用以获取HEAD元数据,幂等方法 POST:常用于提交HTML FORM表单、新增资源等 PUT:更新资源,带条件时是幂等方法 DELETE:删除资源,幂等方法 CONNECT:建立tunnel隧道 OPTIONS:显示服务器对访问资源支持的方法,幂等方法 TRACE:回显服务器收到的请求,用于定位问题。有安全风险 Request-target origin-form:后端请求资源的路径,为空时传递/ absolute-form:用于正向代理 authority-form:用于CONNECT方法 asterisk-form:用于OPTIONS方法 HTTP-version 版本号发展历史 HTTP/0.9:只支持GET

Http请求响应模型

♀尐吖头ヾ 提交于 2020-03-03 07:29:07
主要用到以下四个部分: Client API DB API 场景:登录 1、Client发起请求到API接口层 1.1用户在客户端输入登录信息,点击登录,发送请求 2、API接受用户发起的请求 2.1API对业务逻辑进行验证 2.1.1验证信息是否合法 3、API将用户输入的数据发送给DB crate、 read、 update 、delete 4、DB将返回的数据传给API 5、API返回成功或者失败的状态码返回给Client 6、客户端将返回的信息提示给用户 测试环境: 一、客户端 功能测试、自动化测试 二、接口层 接口测试 三、数据库 可以将开发人员的sql语句单独用例做性能测试 Http的请求流程   一次Http请求的 流程   客户端在输入域名后通过DNS服务器解析得到IP地址;得到IP地址后,通过三次握手进行TCP/IP连接;之后就进行通信。   TCP三次握手   TCP在建立连接的时候需要三次握手,第一次握手将Client标志位SYN设置为1,随机产生一个值seq=J;Server在收到Client传来的SYN时,必须进行确认(ack=J+1),同时自己也发送一个SYN包,此Server进入SYN-RECV状态;Client在收到SYN+ACK包后向Server发送确认包ACK,发送完成后Client和Server进入连接状态,这就完成了三次握手,开始通信。  

HTTP请求响应模型

淺唱寂寞╮ 提交于 2020-03-03 07:26:16
1、 HTTP协议 Internet的基本协议是TCP/IP协议(传输控制协议和网际协议),目前广泛使用的FTP、HTTP(超文本传输协议)、Archie Gopher都是建立在TCP/IP上面的应用层协议,不同的协议对应不同的应用。而HTTP协议是Web应用所使用的主要协议。 HTTP协议是基于请求响应模式的。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户端信息和内容的类似MIME的消息结果。服务器则以一个状态行作为响应,相应的内容包括消息协议的版本、成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 HTTP是无状态协议,依赖于瞬间或者近乎瞬间的请求处理。请求信息被立即发送,理想的情况是没有延时的进行敕处理,不过,延时还是客观存在的。HTTP有一种内置的机制,在消息的传递时间上由一定的灵活性:超时机制。一个超时就是客户机等待请求消息的返回信息的最长时间。 HTTP的请求和响应消息如果没有发送并传递成功的话,不保存任何已传递的信息。比如,单击“提交”按钮,如果表单没有发送出去,则浏览器将显示错误信息页,并且返回空白表单。虽然没有发送成功,但是HTTP不保存表单信息。 由于HTTP协议的上述特点,通常,客户端每次需要更新信息都必须重新向服务器发起请求,客户端收到服务器返回的信息后再更新屏幕内容。 基于HTTP协议的客户端

HTTP 协议报文解析

会有一股神秘感。 提交于 2020-03-03 05:34:48
本篇主要是为了记录HTTP中报文的格式,以便针对报文进行解析。首先会介绍基础的HTTP报文,之后会介绍 文件上传时的数据报文格式. HTTP基础报文格式 按照HTTP报文类型进行介绍,HTTP报文类型分为请求报文(客户端主动请求报文)和响应报文(服务端响应客户端的回传报文)。其基本的格式为: GET / HTTP/1.1 Host: www.enjoytoday.cn Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Referer: http://www.enjoytoday.cn/posts/326 Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8 Cookie: bdshare_firstime=1466032270994; UM

nginx和tomcat的区别

女生的网名这么多〃 提交于 2020-03-03 03:22:27
web上的server都叫web server,但是大家分工也有不同的。 nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。 但是事无绝对,nginx也可以通过模块开发来提供应用功能,tomcat也可以直接提供http服务,通常用在内网和不需要流控等小型服务的场景。 apache用的越来越少了,大体上和nginx功能重合的更多。 严格的来说,Apache/Nginx 应该叫做「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/Python 等其他语言开发的应用也无法直接运行在 Tomcat 上)。 一个 HTTP Server 关心的是 HTTP 协议层面的传输和访问控制,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能。客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)。通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,但是一个 HTTP Server

1.爬虫基本介绍

让人想犯罪 __ 提交于 2020-03-03 00:58:24
目录 1 爬虫介绍 1.1 爬取流程 状态码301和302的区别? 2 requests模块 模拟发送http请求 需要向携带头部的地址发送请求 自己服务器模拟requests使用 get请求携带参数 get请求携带header中的referer 携带cookie的两种方式 发送post请求携带数据的位置 响应对象response 解析json requests发送请求如何使用代理 总结 并发爬取某视频网站 1 爬虫介绍 1.1 爬取流程 爬取的都是http/https的数据,移动端的数据,发送请求获取数据,并不是只有python能做爬虫(任何语言都可以做爬虫),python比较便捷,模块多,上手快,爬虫框架scrapy 发送http请求(requests模块)-----》服务端返回数据(咱们要爬取的网站)-----》拿到数据解析(re,bs4)(json/html)------》入库保存 (文件,mysql,redis) ------》后续可以做分析 发送http请求:浏览器,浏览器会自动组装数据包(http的请求包),向服务端发送请求 自己基于socket来封装,比较复杂,原生python提供了urllib模块,有个人基于urllib模块继续封装,做了requests模块, 使用requests模块模拟发送http请求,有的时候爬不到数据,被禁止了,一定是你模拟的不够像,

HTTP协议及burp基本使用

六眼飞鱼酱① 提交于 2020-03-02 19:03:32
web应用协议——HTTP HTTP( 超文本传输协议) 一种通信协议, 1990 年提出, 当前版本为HTTP/1.1 使用超文本标记语言(HTML) 将资源从服务器传送到客户端 超文本传输协议特点 请求、响应模式 简单快速: 客户向服务器请求服务时, 只需传输请求方法和路径 灵活: HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type 加以标记 无连接: 一个请求一个连接, 完成后断开 无状态: 协议对于事务处理没有记忆能力, 在服务器不需要先前信息时应答较快 HTTP协议结构 HTTP的一个会话, 由Request 和response 组成 HTTP 请求(Requests) 包含三个部分 请求行: 方法, URL, 协议/ 版本(Method-URl-Protocol/Version) 消息报头(Request headers) 请求正文( Entity body) HTTP 响应(Responses) 也包含三个部分 状态行: 协议状态代码描叙(ProtocoI-Status code-Description) 消息报头(Response headers) 响应正文( Entity body) 服务器返回的资源的内容 1 HTTP请求方法  POST /servIet/defauIt.JSP HTTP/1.1

用android发出HTTP请求

孤街醉人 提交于 2020-03-02 18:03:17
我到处搜索但我找不到答案,有没有办法发出简单的HTTP请求? 我想在我的某个网站上请求PHP页面/脚本,但我不想显示该网页。 如果可能的话我甚至想在后台(在BroadcastReceiver中)这样做 #1楼 我使用Gson lib为web服务创建了这个URL: 客户: public EstabelecimentoList getListaEstabelecimentoPorPromocao(){ EstabelecimentoList estabelecimentoList = new EstabelecimentoList(); try{ URL url = new URL("http://" + Conexao.getSERVIDOR()+ "/cardapio.online/rest/recursos/busca_estabelecimento_promocao_android"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); if (con.getResponseCode() != 200) { throw new RuntimeException("HTTP error code : "+ con.getResponseCode()); } BufferedReader br =

Java web实现原理

流过昼夜 提交于 2020-03-02 15:24:28
说明 最近在看一本java web和tomcat技术介绍的书籍。故此,希望通过文字总结的方式总结自己学习所获,本篇主要介绍java实现web基本的信息浏览的方法原理。 web的本质 由于技术能力有限,或许我的表述存在某些问题,仅供参考。web网页技术其本质包括三个要素:访问用户、浏览器(软件)、访问地址(Url).三个基本的要素构成了一次简单的网页浏览的过程。其中访问用户为数据被动接收者,浏览器为数据加工者(根据既定规则展示数据),访问地址为数据获取(也可以理解为数据提供方)。由此可见,web的基础就是对于数据的获取和数据的展示,展示本篇不做介绍,主要介绍浏览器如何通过url获取网页数据的。 web实现 web构成主要就两个部分:服务端和客户端。而web的访问其实就是一次简单的net间的数据传输,web是基于TCP/IP协议簇的HTTP来规范通信过程,而基本的通信过程其实就是一次tcp方式连接get的请求过程。浏览器通过get方式获取当前的浏览信息(html或者其他资源文件信息)。如下,简单介绍有关http协议的的基本格式信息内容以及如何通过java程序模拟实现一次简单的网页访问。 1) HTTP协议 HTTP(HyperText Transfer Protocol)为超文本传输协议,这是万维网通信文件均需要遵循的标准。初期是为了专门处理超文本(html)数据传输的方法