http请求

当你输入一个网址的时候,实际会发生什么?

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-08 20:07:29
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~ 1. 首先嘛,你得在浏览器里输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。 ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。 递归搜索 – 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器

当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

蓝咒 提交于 2020-03-08 19:57:44
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~ 1. 首先嘛,你得在浏览器里输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。 ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。 递归搜索 – 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器

在浏览器输入一个网址后,发生了什么?

扶醉桌前 提交于 2020-03-08 19:55:03
转自http://www.cnblogs.com/SarahLiu/p/5954832.html 这是面试中一道非常经典的问题。 当你在浏览器中输入一个网址,浏览器的处理过程如下: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 1 第一步 浏览器查找该域名的 IP 地址 2 第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求 3 第三步 服务器收到请求并进行处理 4 第四步 服务器返回一个响应 5 第五步 浏览器对该响应进行解码,渲染显示。 6 第六步 页面显示完成后,浏览器发送异步请求。 下面对每个环节做进一步分析: 01 浏览器查找该域名的 IP 地址: 浏览器缓存 首先是查找浏览器缓存,浏览器会缓存DNS记录一段时间,不同浏览器保存的时常不等(2分钟到30分钟不等)。 系统缓存 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用来查找这个网址的对应DNS信息。 路由器缓存 如果在系统缓存里没有找到找到对应的IP,请求会发向路由器,它一般会有自己的DNS缓存。 ISP DNS服务器 如果在路由器缓存里还是没有对应的IP,请求会被发送到ISP。 根域名服务器 如果还是没有,请求将发向根域名服务器进行搜索。找不到就说明此域名不存在。 02 浏览器根据解析得到的IP地址向 web

restfull api

扶醉桌前 提交于 2020-03-08 18:35:34
前言 在以前,一个网站的完成总是“all in one”,页面,数据,渲染全部在服务端完成,这样做的最大的弊端是后期维护,扩展极其痛苦,开发人员必须同时具备前后端知识。于是慢慢的后来兴起了 前后端分离 的思想: 后端负责 数据编造 ,而前端则负责 数据渲染 ,前端静态页面调用指定api获取到有固定格式的数据,再将数据展示出来,这样呈现给用户的就是一个”动态“的过程,而关于api这部分的设计则成了一个问题。如何设计出一个便于理解,容易使用的api则成了一个问题。 而所谓的 restful 就是用来规范我们的api的一种约束。 介绍 rest 是 REpresentational State Transfer 三个单词的缩写,由Roy Fielding于2000年论文中提出,它代表着分布式服务的架构风格。而如果想你的api被称为restful api,只要遵循其规定的约束即可。 rest设计原则 客户端-服务器:通过将用户UI与数据存储分开,我们可以简化服务器组件来提高跨多个平台的用户界面的可移植性并提高可伸缩性。 它可以比表现成前后端分离的思想。 无状态:从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。 这表示你应该尽可能的避免使用session,由客户端自己标识会话状态。(token) 规范接口:REST接口约束定义:资源识别;

爬虫之http协议学习笔记

假装没事ソ 提交于 2020-03-08 10:29:38
No one and you.无人及你 文章目录 1.什么是http协议和https协议 2.在浏览器中发送一个http请求的过程 3.url详解 4.常用的请求方法 5.请求头常见参数 6.常见的响应状态码 1.什么是http协议和https协议: http协议: 全称是HyperText Transfer Protocol,中文意思是超文本传输协议,是一种发布和接收HTML页面的方法。服务器端口是80端口。 https协议: 是HTTP协议的加密版本,在HTTP下加入了SSL层,服务器端口是443端口。 2.在浏览器中发送一个http请求的过程: ①.当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器回向HTTP服务器发送HTTP请求。HTTP请求主要分为‘Get’和‘Post’两种方法。 ②.当我们在浏览器输入URL:http://www.baidu.com的时候,浏览器发送一个Request请求去获取Http://www.baidu.com的html文件,服务器把Response文件对象发送回给浏览器 ③.浏览器分析Response中的HTML,发现其中引用了很多其他文件,比如Images文件,css文件,JS文件。浏览器会自动再次发送Request去获取图片,css文件,或js文件。 ④.当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

http请求具体过程

亡梦爱人 提交于 2020-03-08 10:07:32
请求步骤 1,DNS解析,建立TCP链接,发送请求 如上图当你输入网址打开百度时,在检测中发现 Remote Aderss 解析到的地址,这就是DNS解析找到ip地址 建立TCP链接的三次握手 第一次握手:客户端确认服务器是否可用 第二次握手:服务器告诉客户端自己可用 第三次握手:客户端回复服务器我将访问你 发送请求 看图片右边的Request Headers就是客户端发送的请求的信息 2,服务端接收http请求,处理,并返回 后台实现一般人不清楚,只有工作人员知道 返回的信息在 Response Headers里面 3,客户端接收到返回数据,处理数据(如渲染页面,执行js) 这个就没什么好说的了 来源: CSDN 作者: .........阳光小可爱 链接: https://blog.csdn.net/weixin_43342105/article/details/104727181

CTF学习HTTP协议---请求方式

风流意气都作罢 提交于 2020-03-08 04:05:06
0x01 基础铺垫 HTTP请求 0x02 WriteUp 工具 火狐浏览器 BurpSuite 题目展示 分析 题目强调了请求方式为 GET ,并提示使用 CTF**B 的请求方式可以得到Flag,给了温馨提示如果请求方式不允许,则请求 index.php 页面来进行请求测试。 解析 请求index.php页面 2.抓包看到出现了题目相关的请求 请求包 响应包 4.把包放到Repeate模块 编辑重发 修改请求方法为 CTF**B ,发包 请求方法为 GET ,题目要求使用 CTF**B 的方式进行请求,我们修改请求方式点击发送即可。 第一次尝试请求: 点击发送后响应出错,思考一下,应该是请求方式 CTFH**B 存在问题,结合靶场地址 ctfhub.com 思考,我们将请求方式修改为 CTFHUB 重复上述步骤,再次尝试请求。 成功获取 Flag ,粘贴到提交栏,提交完成! 来源: CSDN 作者: 丽丽的安全小窝 链接: https://blog.csdn.net/qq_39326816/article/details/104631651

http协议基础知识

给你一囗甜甜゛ 提交于 2020-03-07 20:00:27
URI 统一资源标识符,为服务器上每个资源提供一个名字 包含url和urn urn 统一资源名,这些名字与服务器位置无关,没有大范围使用 例子: urn:ietf:rfc:2141 url url是统一资源定位符,url描述了一台特定服务器上某资源的特定位置 是标识资源的最常见形式 url语法 由九个部分构成 <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag> scheme: 方案,大小写无关,指定了使用协议 user:用户名,常见在ftp password: 密码, 常见在ftp host: 域名或ip port: 服务器正在监听的端口, 下层使用了TCP协议的话,HTTP协议的端口是80 path: 路径,类似分级的文件系统路径,指定资源在服务器的位置 params: 参数 http://www.a.com/a;id=1/index.html;name=y 这个例子中有两个路径一个是a,其参数为id值为1 另一个路径段位index.html,其参数为name值为y query: 查询字符串,查询组件 http://www.a.com/index.php?a=1&b=y 查询组件中有两个名/值对: a = 1 和 b = y frag : 片段组件 示例 http://www.a

基于HTTP的请求方式总结

为君一笑 提交于 2020-03-07 17:23:34
请求方式 CONNECT 在 HTTP 协议中, CONNECT 方法可以开启一个客户端与所请求资源之间的双向沟通。它可以用来创建隧道(tunnel)。 例如,​ CONNECT ​ 可以用来访问采用了 SSL ( HTTPS ) 协议的站点。客户端要求代理服务器将 TCP 连接作为通往目的主机隧道。之后该服务器会代替客户端与目的主机建立连接。连接建立好之后,代理服务器会面向客户端发送或接收 TCP 消息流。 CONNECT 是一个点对点的连接。它是一个没有实体的请求,但是能够成功请求到响应,同时也是一种不安全、不可缓存、无法运用到 HTML 表单上和 非幂 等的的一种请求连接方式。 示例 CONNECT server.example.com:80 HTTP/1.1 Host: server.example.com:80 Proxy-Authorization: basic aGVsbG86d29ybGQ= DELECT HTTP DELECT 请求方法用于删除指定的资源。 请求是否有主体 可以有 成功的返回是否有主体 可以有 安全 否 幂等 是 可缓存 否 可以在 HTML forms 中使用 否 示例 请求 DELECT /file.html HTTP/1.1 响应 如果 ​DELETE ​方法成功执行,那么可能会有以下几种状态码: 状态码 ​ 202 ​ (​Accepted

http协议版本和MPM工作模式

允我心安 提交于 2020-03-07 17:23:04
协议版本 http/0.9 1991,原型版本,功能简陋,只有一个命令GET。GET /index.html ,服务器只能回应HTML格式字符串,不能回应别的格式 http/1.0 1996年5月,支持cache, MIME, method 每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接 引入了POST命令和HEAD命令 头信息是 ASCII 码,后面数据可为任何格式。服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作用。这些数据类型总称为MIME 多用途互联网邮件扩展,每个值包括一级类型和二级类型,预定义的类型,也可自定义类型, 常见Content-Type值:text/xml image/jpeg audio/mp3 http/1.1 1997年1月,引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6个持久连接引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率 新增方法:PUT、PATCH、OPTIONS、DELETE 同一个TCP连接里,所有的数据通信是按次序进行的。服务器只能顺序处理回应