http请求

深入浅出让你理解跨域与SSO单点登录原理与技术

Deadly 提交于 2020-03-31 11:12:08
一:SSO体系结构 SSO ​ SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 体系结构 ​ 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--token;用户再访问别的应用的时候就会将这个token带上,作为自己认证的凭据,应用系统接受到请求之后会把token送到认证系统进行校验,检查token的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了 。 Token(令牌) token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。 当用户第一次登录后,服务器生成一个token并将此token返回给客户端,客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。 以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。 简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名

Http错误大全

时间秒杀一切 提交于 2020-03-31 08:06:26
HTTP/IIS错误类型 1XX 信息提示 用于表示临时的响应。客户端在收到常规响应之前,应准备接受一个或多个1XX响应。 100 :继续 101 :切换协议 2XX 成功 表示服务器成功地接受了客户端请求。 200 :确定。客户端请求已成功 201 :已创建 202 :已接受 203 :非权威性信息 204 :无内容 205 :重置内容 206 :部分内容 3XX 重定向 客户端浏览器必须采取更多操作来实现请求。(例如:浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求) 302 :对象已移动 304 :未修改 307 :临时重定向 4XX 客户端错误 发生错误,客户端似乎有问题。(例如:客户端请求不存在的页面,客户端未提供有效的身份验证信息) 400 :错误的请求 401 :访问被拒绝 IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: 401.1 :登陆失败 401.2 :服务器配置导致登陆失败 401.3 :由于ACL对资源的限制而未获得授权 401.4 :筛选器授权失败 401.5 :ISAPI/CGI应用程序授权失败 401.7 :访问被Web服务器上的URL授权策略拒绝(IIS6.0专用) 403 :禁止访问 IIS定义了许多不同的错误原因: 403.1 :执行访问被禁止

java实现http的post和get

我是研究僧i 提交于 2020-03-31 02:57:50
前话说一句:conn.setDefaultRequestProperty(key, value);这个函数是设置属性的,其实可以没有! 自己写了一个简单的get,容易控制 public static String callURLtoGet(String strURL) { try { URL url = new URL(strURL); // BufferedReader receiver = new BufferedReader(new InputStreamReader(url.openStream())); BufferedReader receiver = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream())); StringBuffer msg = new StringBuffer(); char[] data = new char[512]; int n = 0; while ((n = receiver.read(data, 0, 512)) != -1) { msg.append(data, 0, n); } return msg.toString().trim(); } catch (Exception e) { e.printStackTrace();

Restful风格

不想你离开。 提交于 2020-03-30 20:51:26
今天看到一个比较好的文章,记录一下: Restful风格API中用put还是post做新增操作有什么区别? 1 HTTP协议详解 HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: 默认HTTP的端口号为80,HTTPS的端口号为443。 HTTP协议永远都是客户端发起请求,服务器回送响应。见下图: 这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。 HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先 客户机 与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。 如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出

HTTP协议分析

你说的曾经没有我的故事 提交于 2020-03-30 18:24:02
实验环境 操作机:Windows XP 实验目的 0、HTTP协议的基本概念及工作流程 1、捕获HTTP数据包的方法 2、分析HTTP的连接数据包 3、HTTP数据包的筛选技术 4、分析HTTP的数据传输数据包 实验工具 wireshark 实验步骤 了解HTTP工作流程 HTTP是一个 无状态 的协议。所谓的无状态指的是客户端 (Web浏览器) 和服务器之间不需要建立持久的连接。这也就意味着当一个客户端向服务器发出请求,然后服务器返回响应之后,连接也就关闭了。服务器并不会保留连接的相关信息,HTTP遵循的是 请求(Request)/应答(Response) 模型。客户端(Web浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有的HTTP连接都被构造成一套请求和应答。在这个过程中要经历4个阶段,包括建立连接、发送请求信息、发送响应信息和关闭连接,如下图所示: 由上图可知, HTTP的工作流程 为: 1、客户端通过TCP的三次握手建立与服务器的连接。 2、当TCP连接成功建立后,客户端向服务器发送HTTP请求。 3、服务器收到客户端的HTTP请求后,将回复响应数据包,并向客户端发送数据。 4、客户端通过TCP四次握手,与服务器断开TCP连接。 HTTP连接数据包的捕获 刚才说了,HTTP需要使用TCP的三次握手来建立连接

XMLHTTPRequest状态status完整列表

a 夏天 提交于 2020-03-30 14:26:29
AJAX中请求远端文件、或在检测远端文件是否掉链时,都需要了解到远端服务器反馈的状态以确定文件的存在 与否。 当然,在我们平常浏览网页时,也会发现一些文件不存在时显示为“404错误”,这就是常见的Http请求状态(status)   Web服务器响应浏览器或其他 客户 程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档。下面是一个最 简单 的应答:   状态行包含HTTP版本、状态代码、与状态代码对应的简短说明信息。在大多数情况下,除了Content-Type之外的所有应答头都是可选的。但Content-Type是必需的,它描述的是后面文档的MIME类型。虽然大多数应答都包含一个文档,但也有一些不包含,例如对HEAD请求的应答永远不会附带文档。有许多状态代码实际上用来标识一次失败的请求,这些应答也不包含文档(或只包含一个简短的错误信息说明)。   当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。 1xx - 信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。 ·0 - 本地响应成功。  · 100 - Continue

计算机网络面试题(三)

假如想象 提交于 2020-03-30 13:42:41
计算机网络之传输层 ● 请你说明一下,TCP协议的4次握手。 考察点:TCP协议 参考回答: 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。 (1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。 (2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 (3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 (4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。 ● 谈一下,为什么tcp为什么要建立连接? 考察点:TCP 参考回答: 保证可靠传输。 ● 请你解释一下TCP为什么可靠一些 考察点:TCP 参考回答: 三次握手,超时重传,滑动窗口,拥塞控制。 ● 请说明一下哪种应用场景会使用TCP协议,使用它的意义 考察点:TCP协议 参考回答:

Openstack Restful API 开发框架 Paste + PasteDeploy + Routes + WebOb

坚强是说给别人听的谎言 提交于 2020-03-30 13:08:48
目录 目录 Paste PasteDeploy Routes WebOb 简介 WSGI入口 Paste和PasteDeploy 配置文件 pasteini 中间件的实现 Routes WebOb 参考资料 Paste + PasteDeploy + Routes + WebOb 简介 Paste + PasteDeploy + Routes + WebOb 这几个模块组合构成了 Openstack Restful API 的开发框架。 由 Paste + PasteDeploy 完成 Application 的 WSGI 化,其中 PasteDeploy 完成 WSGI Server 和 Application 的构建; Routes 负责 URL 路由转发; WebOb 完成了 WSGI 请求和响应的封装 。 使用该框架开发出来的 Restful API 能够满足 WSGI 规范的要求,但是弊端在于该框架比较复杂,代码量大。只有最初的几个 Openstack 核心项目在使用,后来的新生项目使用了一个相对而言更加简单便捷的 Pecan 框架。 RESTful API 程序的主要特点就是 URL_Path 会和功能对应起来。比如用户管理的功能一般都放在 http://hostname:post/version/<project_id>/user 这个路径下。因此,看一个

运用cookie登陆人人网爬取数据

夙愿已清 提交于 2020-03-30 11:01:28
   浏览器访问WEB服务器的过程 在用户访问网页时,不论是通过URL输入域名或IP,还是点击链接,浏览器向WEB服务器发出了一个HTTP请求(Http Request),WEB服务器接收到客户端浏览器的请求之后,响应客户端的请求,发回相应的响应信息(Http Response),浏览器解析引擎,排版引擎分析返回的内容,呈现给用户。WEB应用程序在于服务器交互的过程中,HTTP请求和响应时发送的都是一个消息结构    什么是cookie cookie在http请求和http响应的头信息中,cookie是消息头的一种很重要的属性. 当用户通过浏览器首次访问一个域名时,访问的WEB服务器会给客户端发送数据,以保持WEB服务器与客户端之间的状态保持,这些数据就是Cookie,它是 Internet 站点创建的 ,为了辨别用户身份而储存在用户本地终端上的数据,Cookie中的信息一般都是经过加密的,Cookie存在缓存中或者硬盘中,在硬盘中的是一些小文本文件,当你访问该网站时,就会读取对应网站的Cookie信息,Cookie有效地提升了我们的上网体验。一般而言,一旦将 Cookie 保存在计算机上,则只有创建该 Cookie 的网站才能读取它。    为什么需要cookie Http协议是一个无状态的面向连接的协议,Http协议是基于tcp/ip协议层之上的协议

Android官方API翻译——HttpURLConnection

本秂侑毒 提交于 2020-03-30 08:02:30
人工翻译,水平有限,欢迎指正交流 原文地址: http://developer.android.com/reference/java/net/HttpURLConnection.html ------------------------------------------------------------------- 继承自java.net.URLConnection 适用于HTTP(RFC 2616)的URLConnection,用于在网络上发送和接受数据。这个类可以用来发送或者接受那些事先不知道长度的流式数据。 可以采用如下方式使用这个类: 1.通过调用URL.openConnection()方法,再执行强制类型转换获取HttpURLConnection实例。 2.准备请求。一个网络请求的主要组成部分就是URI,请求头也可能包含凭证、首选内容类型、Session Cookies等数据。 3.请求体是可选的上传内容,一个HttpURLConnection对象要想携带请求体必须设置setDoOutput(true)。通过写入getOutputStream()返回的流来传输数据。 4.读取响应。响应数据的头部通常包含有例如数据内容类型、长度、修改日期以及Session Cookies等元数据。响应数据可以通过getInputStream()返回的流来读取。如果没有响应数据