http请求

HTTP请求的常用方式:

风流意气都作罢 提交于 2020-04-07 16:48:33
1.HTTP请求的常用方法有:GET方法、POST方法、HEAD方法、PUT方法、DELETE方法、CONNECT方法、OPTIONS方法、TRACE方法。 什么是HTTP? HTTP,即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。 客户端(浏览器)会向服务器提交HTTP请求;然后服务器向客户端返回响应;其中响应包含有关请求的状态信息,还可能包含请求的内容。 HTTP的常用方法 1、GET方法 GET方法用于使用给定的URI从给定服务器中检索信息,即从指定资源中请求数据。使用GET方法的请求应该只是检索数据,并且不应对数据产生其他影响。 在GET请求的URL中发送查询字符串(名称/值对),需要这样写: 1 /test/demo_form.php?name1=value1&name2=value2 总结: GET请求请求信息是放在请求头的,不安全,且是会默认缓存的,我们可以从浏览器历史记录中查找到GET请求,还可以把它收藏到书签中;且GET请求有数据量限制,仅用于请求数据,因为url长度的限制,所以经常用于。 注:因GET请求的不安全性,在处理敏感数据时,绝不可以使用GET请求。 2、POST方法 POST方法用于将数据发送到服务器以创建或更新资源,它要求服务器确认请求中包含的内容作为由URI区分的Web资源的另一个下属。

java通过http请求调用接口 (get ,post,上传文件)

假如想象 提交于 2020-04-07 15:16:48
package com.xx.util ; import com.alibaba.fastjson.JSON ; import com.hcr.aurora.vo.ParamVo1 ; import org.apache.http.Consts ; import org.apache.http.HttpEntity ; import org.apache.http.NameValuePair ; import org.apache.http.client.ClientProtocolException ; import org.apache.http.client.config.RequestConfig ; import org.apache.http.client.entity.UrlEncodedFormEntity ; import org.apache.http.client.methods.CloseableHttpResponse ; import org.apache.http.client.methods.HttpGet ; import org.apache.http.client.methods.HttpPost ; import org.apache.http.entity.ContentType ; import org.apache.http

Servlet和HTTP

纵饮孤独 提交于 2020-04-07 14:16:15
Servlet和HTTP Servlet的体系结构 Servlet---->GenericServlet---->HttpServlet GenericServlet:将Servlet接口中的其他方法默认空实现,只将service方法实现,通过extends个可以继承该类并复写service方法 HttpServlet:继承HttpServlet方法,复写doGet和doPost方法,实质是对http协议的封装,简化操作; 推荐使用这种方法 Servlet的相关配置 urlPattern:Servlet的访问路径 一个Servlet可以定义多个访问路径 路径的定义规则: /path /path1/path2 *.path HTTP 概念:Hyper Text Transfer Protocol 超文本传输协议 特点 基于TCP/IP的高级协议 基于请求--响应模型,请求和响应一一对应 无状态协议:每次请求之间相互独立 请求消息数据格式 request 请求行 请求方式(常用两种): GET:请求参数在url后,url长度有限制,不安全 POST:请求参数在请求体中,url长度没有限制 请求方式 url 请求协议/版本 get /page.html HTTP/1.1 请求头(键值对) Host:请求地址 User-Agent:浏览器版本 Accept:接受文件类型 Referer

什么是 HTTP ?

牧云@^-^@ 提交于 2020-04-07 11:23:25
超文本传输协议(HTTP)的设计目的是 保证客户端与服务器之间的通信 。 HTTP 的工作方式是 客户端与服务器之间的请求-应答协议 。 web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。 举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的 状态信息 以及可能被 请求的内容 。 Form 中的 get 和 post 方法,在数据传输过程中分别对应了 HTTP 协议中的 GET 和 POST 方法。二者主要区别如下: 1、Get 是用来从服务器上获得数据,而 Post 是用来向服务器上传递数据。 2、Get 将表单中数据的按照 variable=value 的形式,添加到 action 所指向的 URL 后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action 所指向 URL。 3、Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post 的所有操作对用户来说都是不可见的。 4

nginx http模块11个阶段驱动模式详解

佐手、 提交于 2020-04-07 09:50:07
在nginx调用 ngx_http_process_request_headers() 方法读取完所有的header数据之后,就调用 ngx_http_process_request() 方法开始了请求的处理过程,这也就是nginx http模块开始处理请求的11个阶段的入口,本文则主要讲解nginx是如驱动http模块的11个阶段。 1. 处理入口 ngx_http_process_request() 关于 ngx_http_process_request() 方法,这里首先有两点需要读者理解的: nginx是在接收完header数据之后就开始进入http模块的11个阶段进行处理的,这主要是因为,相对于多变的body数据,nginx更关注如何控制header数据的处理; ngx_http_process_request() 方法只是一个入口方法,最终这个方法将会进入执行http模块11个阶段的调用中,而这个部分是会读取请求的body数据的。由于TCP是流式数据,也就是说一次接收并不一定能够完整的接收所有数据,而且http模块的11个阶段中有部分阶段也可能会要求再次进行当前阶段的调用,这就还是回归到事件框架中了,这个时候会把事件的回调函数设置为 ngx_http_request_handler() 方法,根据请求需要,其是可以不断的将控制权交给该方法,以进行再次调用。也就是说这里的

Nginx-包教包会-进阶

限于喜欢 提交于 2020-04-07 02:09:00
前言 Nginx-包教包会-入门 一文中介绍了怎么使用 Nginx 搭建 web 服务器。 但有的时候呢,我们需要对资源进行访问控制。比如说需要登录才能访问,访问链接具有时间段限制。 又比如说防止恶意攻击,使用限流,限制带宽等等 我们也会使用 Nginx 作为代理服务器,将我们的动态内容的请求转发到应用服务器去处理。 下一期,总结一下 Nginx 相关的配置,给出一个配置模板 本文内容 基于 ngx_http_auth_basic_module 模块,使用用户名和密码限制资源的访问 基于 ngx_http_auth_request_module 集成已有的授权验证 基于 ngx_http_secure_link_module 限制连接的时效性和访问控制 基于请求的限流、基于并发链接数限流,限制每个链接的带宽 为什么要使用 Nginx 作为代理服务器及代理的配置,及获取用户的真实 ip 。 基于代理的负载均衡 授权才能访问 Nginx 中的资源 有的时候我们想简单限制用户的访问。可以使用 ngx_http_auth_basic_module 模块,我们预先设置好账号和密码,用户需要使用特定的用户和密码才能访问。在网站没有用户登录管理功能的时候,可以作为一个替代品。 | Syntax: | auth_basic string | off; | | :------- | --------

16丨把大象装进冰箱:HTTP传输大文件的方法

感情迁移 提交于 2020-04-06 12:01:51
说明《透视HTTP协议》是 罗剑锋 (奇虎360技术专家)在极客时间开的一门专栏课,笔者记录一下学习笔记,仅供参考。 上次我们谈到了 HTTP 报文里的 body,知道了 HTTP 可以传输很多种类的数据,不仅是文本,也能传输图片、音频和视频。 早期互联网上传输的基本上都是只有几 K 大小的文本和小图片,现在的情况则大有不同。网页里包含的信息实在是太多了,随随便便一个主页 HTML 就有可能上百 K,高质量的图片都以 M 论,更不要说那些电影、电视剧了,几 G、几十 G 都有可能。 相比之下,100M 的光纤固网或者 4G 移动网络在这些大文件的压力下都变成了“小水管”,无论是上传还是下载,都会把网络传输链路挤的“满满当当”。 所以,如何在有限的带宽下高效快捷地传输这些大文件就成了一个重要的课题。这就好比是已经打开了冰箱门(建立连接),该怎么把大象(文件)塞进去再关上门(完成传输)呢? 今天我们就一起看看 HTTP 协议里有哪些手段能解决这个问题。 数据压缩 还记得上一讲中说到的“数据类型与编码”吗?如果你还有印象的话,肯定能够想到一个最基本的解决方案,那就是“ 数据压缩 ”,把大象变成小猪佩奇,再放进冰箱。 通常浏览器在发送请求时都会带着“ Accept-Encoding ”头字段,里面是浏览器支持的压缩格式列表,例如 gzip、deflate、br 等

http、tcp、udp、cookie、session、web 应用之间的无状态和有状态传输

↘锁芯ラ 提交于 2020-04-06 00:03:37
无状态含义 每次的请求都是独立的,即不会受上一次请求状态的影响,也不会影响下一次的请求进程。如http 、udp 、ip均为无状态请求 有状态含义 与无状态请求相对应,上一次的请求成功与否直接影响下一次的请求进程。如tcp 为有状态请求 tcp 有状态请求过程 tcp的三次握手 1、当客户端开始发送请求建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。 2、服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态 3、客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手 SYN:同步序列编号(Synchronize Sequence Numbers) tcp的四次挥手 与tcp的三次握手建立连接对应,tcp的四次挥手就断开连接 1、客户端发送一个FIN,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态 2、服务器端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器端进入CLOSE_WAIT状态 3、服务器端发送一个FIN,用来关闭服务器端到客户端的数据传送

HTTPS、HTTP/2前端入门篇

[亡魂溺海] 提交于 2020-04-04 10:28:26
随着网络安全重要性日益凸显,越来越多的站点已经全站切换到HTTPS,其中很多HTTPS站点同时将HTTP协议升级到了HTTP/2。作为一只前端,最近一直在学习和应用相关知识点,便总结梳理如下。 一、何为HTTPS、HTTP/2? HTTPS 全称Hypertext Transfer Protocol Secure,是一种网络 安全 传输协议,是在HTTP之下,传输层至上,增加了传输层安全协议TLS (Transport Layer Security)。HTTPS通过HTTP进行通信,通过TLS加密传输数据,对HTTP协议的版本没有要求,可以是HTTP/1.x,也可以是HTTP/2。 HTTP/2 超文本传输协议的第2版(最初命名为HTTP 2.0),简称h2(加密连接)或h2c(非加密连接)。HTTP/2 对是否在加密通道上建立连接没有要求,但为了避免代理和中间设备对数据传输的影响,所有支持HTTP/2的浏览器都只支持HTTPS信道上的HTTP/2(参见 caniuse )。 HTTP/2 的主要目标是 提升传输性能 ,减少延迟,提高吞吐量,从而提高页面性能。 二、为何说HTTPS是安全的? 我们知道HTTP是明文传输的,假设A同学与B同学要通信,途径M同学,就可以被M同学查看并篡改,不能保证数据的安全。我们首先想到的就是加密,AB同学约好密钥key(因为这里的A

前端性能优化(十一)

南楼画角 提交于 2020-04-03 16:05:32
HTTP 缓存 通过网络获取内容既缓慢,成本又高:大的响应需要在客户端和服务器之间进行多次往返通信,这拖延了浏览器可以使用和处理内容的时间,同时也增加了访问者的数据成本。因此,缓存和重用以前获取的资源的能力成为优化性能很关键的一个方面。 好消息是每个浏览器都实现了 HTTP 缓存! 我们所要做的就是,确保每个服务器响应都提供正确的 HTTP 头指令,以指导浏览器何时可以缓存响应以及可以缓存多久。 如果在应用中使用 Webview 来获取和显示网页内容,可能需要提供额外的配置标志,以确保启用了 HTTP 缓存,并根据用途设置了合理的缓存大小,同时,确保缓存持久化。查看平台文档并确认您的设置! 服务器在返回响应时,还会发出一组 HTTP 头,用来描述内容类型、长度、缓存指令、验证令牌等。例如,在上图的交互中,服务器返回了一个 1024 字节的响应,指导客户端缓存响应长达 120 秒,并提供验证令牌( x234dff ),在响应过期之后,可以用来验证资源是否被修改。 使用 ETag 验证缓存的响应 让我们假设在首次获取资源 120 秒之后,浏览器又对该资源发起了新请求。首先,浏览器会检查本地缓存并找到之前的响应,不幸的是,这个响应现在已经’过期’,无法在使用。此时,浏览器也可以直接发出新请求,获取新的完整响应,但是这样做效率较低,因为如果资源未被更改过