当前位置: 首页 > news >正文

网络爬虫学习笔记 1 HTTP基本原理

HTTP原理

~~~~~       HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种使用最为广泛的网络请求方式,常见于在浏览器输入一个地址。

1. URI和URL

  • URL(Universal Resource Locator,统一资源定位器)
  • URI(Uniform Resource Identifier,统一资源标识符)
  • URL 是 URI 的子集,URI还包括一个子类 URN(Universal Resource Name,统一资源名称)
  • URI 可被视为定位符URL、名称URN或两者兼备
  • URN 定义某事物的身份,URL提供查找该事物的方法
  • URN 仅用于命名,而不指定地址
    注: \color{red}{{注:}} 注:在目前互联网中,URN 使用很少,几乎都是 URI 和 URL ,所以一般网页可以称URL或URI

2. 超文本

  • 浏览器中的网页是由超文本(Hypertext)解析而成
  • 网页源代码是一系列HTML代码里面包含一系列标签(如 img 显示图片、p 显示段落),浏览器解析这些标签后形成了我们平时看到的网页
  • 网页的源代码比起普通文本能够描述更多的内容,包括网页的样式、网页的构成等,这些网页的源代码HTML就被称为超文本

3. HTTP和HTTPS

  • HTTP(Hyper Text Transfer Protocol,超文本传输协议)是用于从网络传输超文本数据本地浏览器的传输协议,它能保证高效而准确地传送超文本文档
  • HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,超文本传输安全协议)是以安全为目标的 HTTP 通道,是HTTP的安全版,它在普通的 HTTP 下加入TLS (TransportLayer Security,传输层安全协议)
  • TLS 是为网络通信提供安全及数据完整性的一种安全协议。
  • HTTPS的安全基础是SSL,通过它传输的内容都是 SSL加密的,主要作用有两种
    • 建立一个信息安全通道,保证数据传输的安全
    • 确认网站的真实性,凡是使用 HTTPS 的网站都可以通过单击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询
  • 一些网站虽然使用HTTPS 协议,但还是会被浏览器提示不安全,如在Chrome 浏览器中打开链接,它会提示“您的连接不是私密连接”
    • 原因是某些网站的证书是不被官方机构认可的,所以证书验证不通过,但它的数据传输
      依然是 SSL 加密的爬虫如果要爬取这样的站点,就需要设置忽略证书的选项,否则会提示SSL 链接错误

4. HTTP请求过程

~~~~~       在浏览器输入一个 URL,按回车键后,在浏览器中观察页面内容,其中的过程是浏览器向网站所在服务器发送一个 Request (请求),网站服务器接收到 Request 后进行处理和解析,然后返回对应的 Response(响应),传回浏览器,Response 中包含页面的源代码等内容,浏览器再对其进行解析便会将网页呈现出来。
~~~~~       请求头里面带有许多请求信息,例如浏览器标识、Cookies、Host等信息,这是 Reque的一部分,服务器会根据请求头内的信息判断请求是否合法,进而做出对应的响应,返回Response。例如,其中包含务器的类型、文档类型、日期等信息,浏览器接收 Response 后,会解析响应内容,进而呈网页内容。

http://www.lryc.cn/news/177749.html

相关文章:

  • 113. 路径总和ii
  • 百度APP iOS端包体积50M优化实践(六)无用方法清理
  • MySQL了解视图View (视图篇 一)
  • 使用applescript自动化trilium的数学公式环境
  • idea中maven项目打包成jar,报错没有主清单属性解决方法
  • Caddy Web服务器深度解析与对比:Caddy vs. Nginx vs. Apache
  • 基于PHP+MySQL的家教平台
  • 吉利微型纯电,5 万元的快乐
  • Gitee使用方法
  • 前端适配笔记本缩放125%,150%导致页面错乱问题
  • 多线程的学习中篇下
  • 贪心算法-拼接字符串使得字典顺序最小问题
  • Linux--互斥锁
  • [2023.09.21]:源码已上传,供大家了解Rust Yew的前后端开发
  • 时序分解 | Matlab实现CEEMD互补集合经验模态分解时间序列信号分解
  • linux缓存-利用缓存提高性能的编程技巧
  • Socks5代理、IP代理与其在爬虫开发中的应用
  • 【C++】C++继承——切片、隐藏、默认成员函数、菱形
  • WebGL笔记:WebGL中绘制圆点,设定透明度,渲染动画
  • 华为云云耀云服务器L实例评测 | 实例使用教学之简单使用:通过命令行管理华为云云耀云服务器
  • 微信小程序 课程签到系统
  • 如何用Postman做接口自动化测试
  • 支付宝电脑网站支付,异步通知
  • 【广州华锐互动】奶牛养殖难产助产3D沉浸式教学平台
  • IDEA社区版,真香!
  • SpringBoot实现全局异常处理
  • Day05-循环高级和数组
  • 从代码操作层面解释什么是“面相对象编程”?
  • 【MySQL】SQL优化、char、varchar、外键约束、排查慢sql等重点知识汇总
  • git管理常用命令