http请求

URL&HTTP协议&GET请求&POST请求

北慕城南 提交于 2020-03-06 00:49:29
1.什么是URL    URL 的全称是 Uniform Resource Locator (统一资源定位符)  通过 1 个 URL ,能找到互联网上唯一的 1 个资源 URL 就是资源的地址、位置,互联网上的每个资源都有一个唯一的 URL URL 的基本格式 = 协议 :// 主机地址 / 路径 http://202.108.22.5/img/bdlogo.gif 协议:不同的协议,代表着不同的资源查找方式、资源传输方式. 1>HTTP:// 表示采用HTTP协议, 主机地址:存放资源的主机的 IP 地址(域名)2>202.208.225/ 这是我的本地服务器地址, 路径:资源在主机中的具体位置3>img/bdlogo.gif 这是我要访问的数据在我服务器上的路径 2.URL 中常见的协议 : HTTP 超文本传输协议,访问的是远程的网络资源,格式是 http:// http 协议是在网络开发中最常用的协议 file 访问的是本地计算机上的资源,格式是 file:// (不用加主机地址) mailto 访问的是电子邮件地址,格式是 mailto: FTP 访问的是共享主机的文件资源,格式是 ftp:// HTTP 协议简介 HTTP 协议的作用 HTTP 的全称是 Hypertext Transfer Protocol ,超文本传输协议 规定客户端和服务器之间的数据传输格式

Http 1.x弊端与Http 2.0比较

混江龙づ霸主 提交于 2020-03-06 00:04:26
本博客转载自 https://www.cnblogs.com/barrywxx/p/8570006.html HTTP2.0作为新版协议,改动细节必然很多,不过对应用开发者和服务提供商来说,影响较大的就几点。 新的二进制格式(Binary Format) http1.x诞生的时候是明文协议,其格式由三部分组成:start line(request line或者status line),header,body。要识别这3部分就要做协议解析,http1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑http2.0的协议解析决定采用二进制格式,实现方便且健壮。 有人可能会觉得基于文本的http调试方便很多,像firebug,chrome,charles等不少工具都可以即时调试修改请求。实际上现在很多请求都是走https了,要调试https请求必须有私钥才行。http2.0的绝大部分request应该都是走https,所以调试方便无法作为一个有力的考虑因素了。curl,tcpdump,wireshark这些工具会更适合http2.0的调试。 http2.0用binary格式定义了一个一个的frame,和http1.x的格式对比如下图: [图10] http2

HTTP 响应代码

自闭症网瘾萝莉.ら 提交于 2020-03-05 16:57:26
HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)。状态代码由 section 10 of RFC 2616定义 信息响应 100 Continue 这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。 101 Switching Protocol 该代码是响应客户端的 Upgrade 标头发送的,并且指示服务器也正在切换的协议。 102 Processing (WebDAV) 此代码表示服务器已收到并正在处理该请求,但没有响应可用。 103 Early Hints 此状态代码主要用于与Link 链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源。 成功响应 200 OK 请求成功。成功的含义取决于HTTP方法: GET:资源已被提取并在消息正文中传输。 HEAD:实体标头位于消息正文中。 POST:描述动作结果的资源在消息体中传输。 TRACE:消息正文包含服务器收到的请求消息 201 Created 该请求已成功,并因此创建了一个新的资源。这通常是在POST请求,或是某些PUT请求之后返回的响应。 202 Accepted 请求已经接收到,但还未响应

用了这么久HTTP, 你是否了解Content-Length?

China☆狼群 提交于 2020-03-05 16:08:12
摘要: 理解HTTP协议... 原文: 用了这么久HTTP, 你是否了解Content-Length和Transfer-Encoding ? 作者: 朴瑞卿的博客 由Content-Length导致的问题引发的一系列思考: 前段时间开发API网关, 使用postman调试时出现了超时的情况, 经排查确定是请求数据被处理后 Content-Length 与实际不一致导致的问题, 故有此文. Content-Length , HTTP消息长度, 用 十进制数字 表示的 八位字节的数目 . 一般情况下, 很多工作都被框架完成, 我们很少去关注这部分内容, 但少数情况下发生了 Content-Length 与实际消息长度不一致, 程序可能会发生比较奇怪的异常, 如: 无响应直到超时. 请求被截断, 而且下一个请求解析出现错乱. Content-Length 是HTTP消息长度, 用 十进制数字 表示的 八位字节的数目 , 是Headers中常见的一个字段. Content-Length 应该是精确的, 否则就会导致异常 (特别地, HTTP1.0中这个字段可有可无). Content-Length 首部指示出报文中实体主体的字节大小. 这个大小是包含了所有内容编码的, 比如, 对文本文件进行了 gzip 压缩的话, Content-Length 首部指的就是压缩后的大小而不是原始大小.

HTTP各版本的区别

蓝咒 提交于 2020-03-05 12:19:07
什么是HTTP和HTTPS? HTTP是浏览器与服务器之间以明文的方式传送内容的一种互联网通信协议。 HTTPS是在HTTP的基础上主要基于SPDF协议结合SSL/TLS加密协议,客户端依靠证书验证服务器身份传递加密信息的通信协议。 1991年  HTTP/0.9 仅支持GET请求,不支持请求头 1996年  HTTP/1.0 默认短连接(一次请求建议一次TCP连接,请求完就断开),支持GET、POST、 HEAD请求 1999年  HTTP/1.1 默认长连接(一次TCP连接可以多次请求);支持PUT、DELETE、PATCH等六种请求         增加host头,支持虚拟主机;支持断点续传功能 2015年  HTTP/2.0 多路复用,降低开销(一次TCP连接可以处理多个请求);           服务器主动推送(相关资源一个请求全部推送);           解析基于二进制,解析错误少,更高效(HTTP/1.X解析基于文本);           报头压缩,降低开销。 HTTPS请求过程:(一次HTTPS请求要进行两次HTTP传输)   1.客户端发出https请求,请求服务端建立SSL连接;   2.服务端收到https请求,申请或自制数字证书,得到公钥和服务端私钥,并将公钥发送给客户端;   3.客户端验证公钥,不通过验证则发出警告

前端常见跨域解决方案(全)

懵懂的女人 提交于 2020-03-05 07:55:44
前端常见跨域解决方案(全) 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入:<link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指”协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 常见跨域场景 URL 说明 是否允许通信 http : //www.domain.com/a.js http : //www.domain.com/b.js 同一域名,不同文件或路径 允许 http : /

前端基础-HTTP,HTML,浏览器

徘徊边缘 提交于 2020-03-05 01:07:31
前端基础 一、HTTP,HTML,浏览器 1、说一下 http 和 https https 的 SSL 加密是在传输层实现的。 (1)http 和 https 的基本概念: http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器 端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传输协议,它可以 使浏览器更加高效,使网络传输减少。 HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。 它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在 WWW 中使用的是 HTTP/1、0 的第六版,HTTP/1、1 的规范化工作正在进行之中,而且 HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP 协议工作于客户端-服务端架构为上。浏览器作为 HTTP 客户端通过 URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送 响应信息。 https: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。

Http请求-get和post的区别

微笑、不失礼 提交于 2020-03-04 21:24:44
GET和POST是HTTP请求的两种基本方法。 最直观的区别就是GET把参数包含在URL中,以?的方式来进行拼接,POST通过request body传递参数。并且GET请求在URL中传送的参数是有长度限制的(每个浏览器限制的长度都不同),而POST没有。 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。 GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 GET请求只能进行url编码,而POST支持多种编码方式。 GET请求会被浏览器主动cache,而POST不会,除非手动设置。 GET方式一般用来获取数据 POST方式一般用来提交数据 GET在浏览器回退时是无害的,而POST会再次提交请求。 HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。 GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 GET和POST还有一个重大区别,简单的说: GET产生一个TCP数据包;POST产生两个TCP数据包。 在网络环境好的情况下

http 中请求以 https 开头的地址会报错

旧巷老猫 提交于 2020-03-04 17:11:08
http 中请求以 https 开头的地址会报错 2种解决方法: 1、使用相同的 http 地址 或者相同的 https 地址 2、页面的head中加入这句,自动将http的不安全请求升级为https: < meta http - equiv = "Content-Security-Policy" content = "upgrade-insecure-requests" > 来源: CSDN 作者: 贝贝的博客 链接: https://blog.csdn.net/qq_34794885/article/details/104020677

HTTP事务 与 HTTP的工作流程图

有些话、适合烂在心里 提交于 2020-03-04 06:03:24
一. 什么是HTTP事务 HTTP事务 = 请求命令 + 响应结果 是HTTP请求的最小处理单元,简单说就是一次完整的请求过程,包括请求的发送和结果的返回,如果只有发送请求,而没有响应结果,则不能算作HTTP事务。 在这里插入图片描述 二. HTTP的工作流程 域名解析 -> 三次握手 -> 发起HTTP请求 -> 响应HTTP请求并得到HTML代码 -> 浏览器解析HTML代码 -> 浏览器对页面进行渲染呈现给用户 来源: CSDN 作者: 丫呀nice 链接: https://blog.csdn.net/weixin_46100406/article/details/104640543