爬虫学习——HTTP协议


一、协议

在学习 HTTP 协议之前,我们先了解一下什么是协议 。所谓协议,就是两个计算机之间为了能够流畅的进行沟通而设置的一个君子协定。

常见的协议有 TCP/IP 协议,SOAP 协议,HTTP 协议,SMTP 协议等等。

二、HTTP 协议

HTTP 协议全称是Hyper Text Transfer Protocol(超文本传输协议),是用于从万维网(WWW.World Wide Web)服务器传输超文本到本地浏览器的传送协议。直白点解释,HTTP 协议就是浏览器与服务器之间数据交互遵守的协议。

HTTP 协议是应用层协议,它和其他应用层协议一样,也是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。并且它是由请求和响应构成,是一个标准的客户端和服务器模型。

HTTP协议将一条消息分为三大块内容,无论是请求还是响应都是三块内容。

请求

  • 请求行 -> 请求方式(get/post) 请求url地址 协议
  • 请求头 -> 放一些服务器要使用的附加信息
  • 请求体 -> 一般放一些请求参数

响应

  • 状态行 -> 协议 状态码
  • 响应头 -> 放一些客户端要使用的一些附加信息
  • 响应体 -> 服务器返回的真正客户端要使用的内容(HTML,json等)

请求头中最常见的一些重要内容

  • User—Agent:请求载体的身份标识(用啥发送的请求)
  • Referer:防盗链(这个请求是从哪个页面来的?反爬会用到)
  • cookie:本地字符串数据信息(用户登录信息,反爬的token)

响应头中一些重要的内容

  • cookie:本地字符串数据信息(用户登录信息,反爬的token)
  • 各种神奇的莫名其妙的字符串(这个需要经验了,一般都是token字样,防止各种攻击和反爬)

请求方式

  • GET:显示提交
  • POST:隐示提交

三、HTTP 协议的工作原理

HTTP 协议是基于客户/服务器模式,且面向对象连接的。

典型的 HTTP 事务处理有如下的过程:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。

客户与服务器之间的 HTTP 连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考虑到 WWW 服务器面向的是 Interne t中成千上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。

HTTP 是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP 是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个 HTML文档中定义了一个超文本链接后,浏览器将通过 TCP/IP 协议与指定的服务器建立连接。


总结

上面是我对 HTTP 协议学习的总结,一部分是摘自百度百科,一部分是我自己对 HTTP 协议粗浅的理解。对于 HTTP 协议,其实我还是有很多地方没有搞明白,只能是后面在一点一点的学习补充了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个默默无闻的小程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值