Python爬虫(二)--http基本原理(Python Crawler (2) Basic Principles of HTTP)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
全面总结 IT核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云计算、人工智能、运维开发、算法结构、物联网、JAVA Python语言等。
不同类型针对性训练,提升编程思维,剑指大厂非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。

1.http基本原理

1.1 URL

  URL(Uniform Resource Locator),即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置
以及浏览器应该怎么处理它

1.2 超文本

  超文本:hypertext,浏览器里面看到的网页就是超文本解析而成, 其网页源代码是一系列html代码,如img表示图片,p指定段落

1.3 http原理

‌HTTP协议的原理‌涉及客户端与‌服务器之间的通信过程,主要通过请求和响应机制实现。HTTP是一个应用层协议,基于B/S架构,通常承载于TCP协议之上,并可以加密传输(通过HTTPS)。HTTP协议的工作流程包括以下几个关键步骤:‌12

  1. ‌建立连接‌:客户端(如Web浏览器)通过DNS解析服务器的域名得到IP地址,然后通过TCP/IP协议与服务器建立连接,默认端口为80(对于HTTPS,端口为443)。
  2. ‌发送请求‌:客户端向服务器发送一个HTTP请求,请求包含请求行、消息报头和请求正文。请求行包括请求方法(如GET、POST)、请求的URI和HTTP版本。
  3. ‌服务器响应‌:服务器接收到请求后,处理请求并生成响应。响应包括‌状态码、响应头和响应体。状态码用于指示请求是否成功以及任何错误信息。
  4. ‌关闭连接‌:在HTTP/1.0中,每次请求后连接会关闭,但在HTTP/1.1中引入了持久连接,允许多个请求通过同一个连接发送和接收,直到一方关闭连接。

HTTP是一个无状态的协议,这意味着每次请求都是独立的,服务器不会保存客户端的状态信息。为了实现状态管理,HTTP引入了‌Cookie和‌Session机制。Cookie由服务器发送到客户端并在后续请求中发送回服务器,用于识别用户。Session则是服务器端保存的状态信息,通过Session ID在Cookie中传递。

此外,HTTP头部包含了一系列键值对,用于传递响应信息,如Content-Type表示响应内容的类型,Content-Length表示响应内容的长度,Set-Cookie用于设置Cookie等。

综上所述,HTTP协议通过简单的请求-响应模型,实现了万维网上的数据传输和服务访问,是现代互联网通信的基础

   • http和https:访问资源需要的协议类型,还有其他的类型,ftp,sftp,smb等
   • http:hyper text transfer protocol,超文本传输协议,网络传输超文本数据到本地浏览器的传送协议,保证高效而准确的传送超文本文档
   • https : Hyper Text Transfer Protocol over Secure SocketLayer,以安全为目标的http通道,http下加入ssl层
   • 作用:建立一个信息安全通道来保证数据传输的安全,确认网站的真实性

1.4 http请求流程

   浏览器中输入url后,浏览器向网站所在服务器发送了一个请求,网站服务器接收请求,并对这个请求进行处理和解析,然后返回对应的响应,传回给浏览器,再通过浏览器解析出来

1.5 请求

  请求——可分为四部分内容:

   • 请求的网站(request url)
   • 请求方法(request method)
   • 请求头(request headers)
   • 请求体(request body)

1.6 请求方法

  主要分为getpost请求

 get请求:
   • 请求中的参数包含在url里面
   • 请求提交的数据最多只有1024字节
   • 百度中输入关键字,wd表示要搜索的关键字

  post请求:
   • 表单提交时候发起,用户登录
   • 数据以表单的形式传输,不会体现在url中 ✓ 请求提交的数据没有大小限制
   • 数据传输更安全(参数不会体现在url中)


1.7 请求头

  用来说明服务器要使用的附加信息,比较重要的信息有cookie(存储在用户本地终端上的数据),user-agent(请求从哪个地方发起的)
1.8 请求体

  一般承载的内容是post请求中的表单数据,对于get请求,请求体为空
1.9 响应

  由服务器返回给客户端,可以分为三部分: 响应状态码( response status code ) , 响应头 ( response headers), 响应体(response body)

1.91 响应码

  表示服务器的响应状态, 200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误

  可以根据状态码来判断服务器的响应状态:

       常见的错误代码及错误原因

1.92 响应头

  包含了服务器对请求的应答信息,如content-type,server,set-cookis等
1.93 响应体  

爬虫请求后解析的内容就是响应体,响应的正文数据,比如请求网页时,响应体是html代码;请求一张图片时,响应体为图片的二进制数据 ; json数据等


2 网页基础

2.1 网页的组成

  HTML,CSS和JavaScript

  Html相当于骨架,JavaScript相当于肌肉,css相当于皮肤
  三者结合起来形成完善的网页

2.2 HTML

  超文本标记语言(hyper text markup language)

  HTML:结构,决定网页的结构和内容(是什么),head元素标记头部文件,用title素标记网页名称,用body元素标记网页主体,用table元素标记表格等等,段落用p标签表示,布局通过布局标签div嵌套组合合成

2.3 CSS

  层叠样式表(cascading stytle sheets)

  层叠指在html中引用了数个样式文件,并且样式发生冲突时候,浏览器能依据层叠顺序处理

  样式:

  设定网页的表现样式(什么样子)。将网页样式提取出来方便更改某一类元素的样式,通过style元素插入CSS代码,style元素放在head元素中。网页中文字的大小,颜色,元素间距,排列等

2.4 JavaScript(JS)

  Html和css只是实现静态信息,缺乏交互性。网页的交互和动画效果通过JavaScript实现 JavaScript通过单独的文件形式加载,后缀为.js,Html中通过script标签引入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Linux运维老纪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值