http请求

HttpClient详细解释

泪湿孤枕 提交于 2020-01-28 00:58:03
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。 org.apache.commons.httpclient.HttpClient与org.apache.http.client.HttpClient的区别 Commons的HttpClient项目现在是生命的尽头,不再被开发, 已被Apache HttpComponents项目HttpClient和的HttpCore 模组取代,提供更好的性能和更大的灵活性。 一、简介 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 下载地址: http://hc.apache.org

WebApi 跨域解决方案 --CORS

好久不见. 提交于 2020-01-27 22:18:52
跨站HTTP请求(Cross-site HTTP request)是指发起请求的资源所在域不同于请求指向的资源所在域的HTTP请求。 比如说,我在Web网站A(www.a.com)中通过<img>标签引入了B站的资源(www.b.com/images/1.jpg),那么A站会向B站发起一个跨站请求。 这种图片资源的跨站请求是被允许的,类似的跨站请求还有CSS文件,JavaScript文件等。 但是如果是在脚本中发起HTTP请求,出于安全考虑,会被浏览器限制。比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守 同源策略 。 所谓“同源策略”是指Web应用程序只能使用 XMLHttpRequest 对象向发起源所在域内发起HTTP请求,这个请求源和请求对象必须在一个域内。 举例来说,http://www.a.com,这个网址的协议是http,域名是www.a.com,端口默认是80。那么以下是它的同源情况: http://www.a.com/index.html 同源 https://www.a.com/a.html 不同源(协议不同) http://service.a.com/testService/test 不同源(域名不同) http://www.b.com/index.html 不同源(域名不同) http://www.a.com:8080/index

RESTFfu l规范 以及理解

本秂侑毒 提交于 2020-01-27 07:52:50
RESTFful规范介绍 ​ RESTful规范 ​ 熟悉RESTful API(接口)开发 ​ RESTful是个啥? ​ 规范 ​ 表现层状态转化 ​ 将传统的软件开发架构与通信协议做融合 用HTTP协议中的 请求方法 来表示增删改查四个动作 GET: 获取资源 POST: 创建资源 PUT:更新资源 DELETE:删除资源 RESTful优势: ​ 以图书的增删改查为例 ​ /books/ GET:获取图书信息 ​ /books/add/ POST:新增图书 ​ /books/1/edit/ POST: 编辑图书 ​ /books/1/del/ POST: 删除图书 ​ /books/ GET:查看所有的图书 ​ /books/ POST: 创建一本书 ​ /books/1/ PUT:编辑图书 ​ /books/1/ DELETE:删除图书 ​ /books/1 ​ id: 1 ​ title: 《跟MJJ学前端》 ​ publisher: '/publisher/1/' RESTful设计的误区: 1. URI不要包含动词! RESTful设计指南 状态码: 进入网址查询 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#1xx_Informational_response 1xx(信息):收到请求,继续处理

通过图轻松了解HTTP方法

与世无争的帅哥 提交于 2020-01-27 00:13:01
目录: 告知服务器意图的HTTP方法 GET获取资源 POST传输实体主体 PUT传输文件 DELETE删除文件 HEAD获得报文首部 OPTIONS询问支持的方法 TRACE追踪路径 CONNECT要求用隧道协议连接代理 持久连接 管线化 告知服务器意图的HTTP方法 GET获取资源 用来请求访问已被URI识别的资源,指定的资源经服务器端解析返回响应内容。 例子如下: 请求: GET /index.html HTTP/1.1 Host:www.furfur.net 响应:返回index.html的页面资源 Host:虚拟主机运行在同一个IP上,因此使用首部字段Host加以区分。Host会告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段在HTTP/1.1规范内是唯一一个必须被包含在请求内的首部字段。 POST传输实体主体 POST的主要目的告知服务器信息,同时可以获取响应的主体内容。 例子如下: 请求: POST/submit.cig HTTP/1.1 Host:www.furfur.net 响应:返回submit.cig接收数据的处理结果 PUT传输文件 注意:PUT方法自身不带验证机制,存在安全问题 例子如下: 请求: PUT/fur.html HTTP/1.1 Host:www.furfur.net 响应:响应返回状态码204 No Content

HTTP认证模式:Basic and Digest Access Authentication

夙愿已清 提交于 2020-01-26 23:17:01
一. Basic 认证   客户端以“ : ”连接用户名和密码后 ,再经 BASE64编码 ( Base64 Content-Transfer-Encoding )通过Authorization请求头发送该密文至服务端进行验证,每次请求都需要重复发送该密文。 可见Basic认证过程简单,安全性也低,存在泄露个人账号信息以及其他诸多安全问题,最好在实现了Transport Layer Security (TLS)的情况下去使用 。以下仅为原理演示,不代表真实情况: 客户端向服务器请求数据: GET / HTTP/1.1 Host: www.myrealm.com 服务端向客户端发送验证请求401: HTTP/1.1 401 Unauthorised Server: bfe/1.0.8.18 WWW-Authenticate: Basic realm="myrealm.com" Content-Type: text/html; charset=utf-8 客户端收到401返回值后,将自动弹出一个登录窗口,等待用户输入用户名和密码 将“用户名:密码”进行BASE64加密后发送服务端进行验证: GET / HTTP/1.1 Host: www.myrealm.com Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx

python3-Request库详解

允我心安 提交于 2020-01-26 22:12:44
python3-Request库详解 通过urllib 的基本用法,但是其中确实有不方便的地方,比如处理网页验证和 Cookies 时,需要写 Opener 和 Handler 来处理。 为了更加方便地实现这些操作,就有了更为强大的库 requests 1.requests库简介 1.1 requests库的安装 在命令行界面中运行如下命令, 即可完成 requests 库的安装: pip3 install requests 1.2 基本用法 urllib 库中的 urlopen()方法实际上是以 GET 方式请求网页,而 requests 中相应的方法就是 get() 方法 import requests r = requests . get ( 'https://www.csdn.net/' ) print ( type ( r ) ) print ( r . status_code ) print ( type ( r . text ) ) print ( r . text ) print ( r . cookies ) 运行结果: 这里我们调用 get()方法实现与 urlopen()相同的操作,得到一个 Response 对象,然后分别输出 了 Response 的类型、状态码、响应体的类型、内容以及 Cookies。 1.3 Get请求 HTTP 中最常见的请求之一就是

HTTP和HTTPS协议

假如想象 提交于 2020-01-26 20:20:47
介绍 http [1] 是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一种应用层协议,可用于将超文本服务器中文本、图片、音视频等内容传输到客户端浏览器。 构建与互联网之上的万维网,其主要组成部分就是http协议。目前使用的最广泛的http协议版本是http1.1。 最初的HTTP协议是万维网1991年诞生时,蒂姆·伯纳斯·李爵士(Sir Tim Berners-Lee)在European Organization for Nuclear Research使用的协议。之后万维网协会(World Wide Web Consortium)和Internet工作小组(Internet Engineering Task Force)合作,并最终发布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定义了我们今天普遍使用的HTTP协议的一个版本——HTTP1.1。 在TCP/IP参考模型中和OSI参考模型中,http协议处于应用层的位置,http规定了客户端和Web服务端的通信协议,而html则规定了传输的内容的格式、类型。https是在http的基础上,增加了TLS/SSL协议,为通信内容进行加密操作。 http通信过程 http协议默认使用TCP的80端口进行通信。通过在浏览器中输入网站地址,URL (Uniform

Android中app发送Http请求出现W/System.err: java.io.IOException: Cleartext HTTP traffic to xxx

╄→гoц情女王★ 提交于 2020-01-26 19:59:48
原因 在新版Android 9.0 (API 28)中,规定所有应用程序默认使用 Https进行网络通信,不能使用Http进行明文通信。这个规定会导致app的Http访问权限受限,进而会抛出异常 W/System.err: java.io.IOException: Cleartext HTTP traffic to www.xxx.com 解决办法 改用Https访问,前提是服务器支持Https且有SSL证书,否则会抛出异常 javax.net.ssl.SSLHandshakeException: Handshake failed targetSdkVersion降到27(含)以下 自定义网络安全设置① 在 AndroidManifest.xml 的 application 标签中设置 networkSecurityConfig 属性: < application ... android: allowBackup = " true " android: icon = " ${app_icon} " android: label = " @string/app_name " android: networkSecurityConfig = " @xml/network_security_config " ... > </ application > 然后在 res 目录下新建 xml

ajax小白理解

你说的曾经没有我的故事 提交于 2020-01-26 19:44:05
ajax 刚需 题外话:某一个事物的产生都是一个问题的解决 思考: 为什么新打开一个网页很慢? 1,网络环境问题 2,为了解决多余的无用的网络请求 为了解决打开网页很慢这个问题,IE最早使用了一个叫 ActiveObject()的插件,这个插件可以实现无刷新的页面加载,但最后被ajax取代。 AJAX ajax全称: AsynchronousJavaScript and XML 延展: setInterval()计时器=>dom 取代flash 插件永远会被原生取代,只是时间问题。 AJAX原理层: webservice 1.webservice架构里一定会把你的敏感信息存在后端 目标是用户无法直接操作; 2.数据操作放在后端 3.js获取数据 4.js操作浏览器发起http/https请求 请求是携带信息的请求,根据后端的逻辑得到相应的返回值 一句话描述ajax的作用? 控制浏览器发送http或者https请求 1.http请求发送的第一种实现方案: 1,src; *** link href; 2,js操作location 对象实现请求 (地址栏:location) 浏览器给我们提供了API http请求发送的对象 var xhr = new XMLHttpRequest() XML 一种数据载体; HTTP 一个请求协议; Request 请求; XMLHttpRequest

跨域资源共享 CORS 详解

馋奶兔 提交于 2020-01-26 10:16:11
一、简介 CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。 二、两种请求 浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。 只要同时满足以下两大条件,就属于简单请求。 (1) 请求方法是以下三种方法之一: HEAD GET POST (2)HTTP的头信息不超出以下几种字段: Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain 凡是不同时满足上面两个条件,就属于非简单请求。 浏览器对这两种请求的处理,是不一样的。 三、简单请求 3.1 基本流程 对于简单请求,浏览器直接发出CORS请求。具体来说,就是在头信息之中