这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » HTTP协议及HTTP代理知识点

共4条 1/1 1 跳转至

HTTP协议及HTTP代理知识点

菜鸟
2020-05-26 17:31:17     打赏

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。仔细看下图会有一个基本了解。

HTTP 的请求方法:

  • GET: 通常用来获取资源

  • HEAD: 获取资源的元信息

  • POST: 提交数据,即上传数据

  • PUT: 修改数据

  • DELETE: 删除资源(几乎用不到)

  • CONNECT: 建立连接隧道,用于代理服务器

  • OPTIONS: 列出可对资源实行的请求方法,用来跨域请求

  • TRACE: 追踪请求-响应的传输路径


以下是 HTTP 请求/响应的步骤:

1、客户端连接到Web服务器

一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,www.16yun.cn

2、发送HTTP请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

3、服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

4、释放连接TCP连接

若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

5、客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。


HTTP 缺点


无状态

所谓的优点和缺点还是要分场景来看的,对于 HTTP 而言,最具争议的地方在于它的无状态

在需要长连接的场景中,需要保存大量的上下文信息,以免传输大量重复的信息,那么这时候无状态就是 http 的缺点了。

但与此同时,另外一些应用仅仅只是为了获取一些数据,不需要保存连接上下文信息,无状态反而减少了网络开销,成为了 http 的优点。


明文传输

即协议里的报文(主要指的是头部)不使用二进制数据,而是文本形式。

这当然对于调试提供了便利,但同时也让 HTTP 的报文信息暴露给了外界,给攻击者也提供了便利。WIFI陷阱就是利用 HTTP 明文传输的缺点,诱导你连上热点,然后疯狂抓你所有的流量,从而拿到你的敏感信息。


队头阻塞问题

当 http 开启长连接时,共用一个 TCP 连接,同一时刻只能处理一个请求,那么当前请求耗时过长的情况下,其它的请求只能处于阻塞状态,也就是著名的队头阻塞问题。接下来会有一小节讨论这个问题。


HTTP 状态码

C 规定 HTTP 的状态码为三位数,被分为五类:

  • 1xx: 表示目前是协议处理的中间状态,还需要后续操作。

  • 2xx: 表示成功状态。

  • 3xx: 重定向状态,资源位置发生变动,需要重新请求。

  • 4xx: 请求报文有误。

  • 5xx: 服务器端发生错误。


HTTP 代理

我们知道在 HTTP 是基于请求-响应模型的协议,一般由客户端发请求,服务器来进行响应。

当然,在网络数据采集的应用中大量需要代理IP(例如:亿牛云的爬虫代理加强版、API代理),就是代理服务器的情况。引入代理之后,作为代理的服务器相当于一个中间人的角色,对于客户端而言,表现为服务器进行响应;而对于源服务器,表现为客户端发起请求,具有双重身份





关键词: 爬虫代理    

工程师
2020-05-26 22:38:02     打赏
2楼

感谢分享


工程师
2020-05-26 22:42:31     打赏
3楼

学到了


工程师
2020-05-26 22:45:52     打赏
4楼

要是讲解的更详细点就好了


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]