《52讲轻松搞定网络爬虫》读书笔记 - HTTP基本原理

简介: 《52讲轻松搞定网络爬虫》读书笔记 - HTTP基本原理

URI 和 URL


URI :Uniform Resource Identifier,即统一资源标志符,

URL :Universal Resource Locator,即统一资源定位符。

 

举栗子,加深理解

链接https://github.com/favicon.ico,它是一个URI也是一个URL,唯一指向一个图标资源,可以通过URI/URL在互联网上找到它

 

URL和URI的关系

URL 是 URI 的子集,也就是说每个 URL 都是 URI,但不是每个 URI 都是 URL;URI还包括一个子类叫做URN(Uniform Resource Name),即统一资源名称

 

URN的作用

URN 只命名资源而不指定如何定位资源

举栗子

比如 urn:isbn:0451450523 指定了一本书的 ISBN,可以唯一标识这本书,但是没有指定到哪里定位这本书

 

URI、URL、URN的关系图

image.png


总结

但是在目前的互联网,URN 的使用非常少,几乎所有的 URI 都是 URL,所以一般的网页链接我们可以称之为 URL,也可以称之为 URI

 

HTTP协议


超文本

我们在浏览器里看到的网页就是超文本解析而成的,其网页源代码是一系列 HTML 代码,而这些可称为超文本

 

HTTP 和 HTTPS

HTTP:超文本传输协议

HTTP作用:从网络传输超文本内容到本地浏览器的协议,保证高效准确的传送超文本内容;最常用1.1版本

HTTPS:HTTP的安全版,在HTTP协议的基础上加了一层SSL协议,SSL属于安全协议


HTTPS的作用

  • 建立一个安全传输通道,保证数据传输的安全性
  • 确认网站的真实性,在浏览器可通过网站的证书查看它认证后的真实信息,也可以通过CA机构颁发的安全签章来查询

 

HTTP请求过程

image.png


在客户端(PC电脑或者手机)输入URL,回车后即可看到页面内容,那这个过程的原理是啥呢?

  1. 客户端发送请求到服务器
  2. 服务器接收请求,处理和解析请求
  3. 服务器返回对应的响应给浏览器

 

通过浏览器开发者工具的network看请求信息


image.png


  1. Name:请求名称,一般截取URL的最后一部分内容当名称
  2. Status:响应状态码
  3. Type:请求的文档类型
  4. Initiator:请求源,标记请求是由哪个对象或进程发起的
  5. Size:有三种类型 memory cache、disk cache、资源本身大小
  6. Time:完成一个请求事务的所需时间(发起请求-处理请求-返回响应)
  7. Waterfa:页面请求过程的可视化瀑布

 

memory cache、disk cache区别

memory cache:字面意思就是内存缓存,代表这个资源直接从内存获取, 不经过服务器,当关闭当前页面时,这个资源就被释放掉了

disk cache:硬盘缓存,代表这个资源从本地硬盘获取,也不经过服务器,但不会因关闭当前页面会释放掉,下次打开该页面,该资源仍然显示disk cache

 

细品一个请求的正确组成


image.png


首先,请求的组成部分

Request从客户端向服务端发送,可以分为4部分:请求方法(Request Method),请求网址(Request URL),请求头(Request Headers),请求体(Request Body)

 

然后,看General部分


已经包含了刚刚说的请求方法和请求网址

status code:响应状态码

Remote Address:远程服务器的地址和端口

Referrer Policy:Referrer 判别策略

 

请求方法

image.png


请求头

用来说明服务器要使用的附加信息,比较重要的信息有:Cookie、Refer、User-Agent

  • Accept:请求报头域,用于指定客户端可接受哪些类型的信息。
  • Accept-Language:指定客户端可接受的语言类型。
  • Accept-Encoding:指定客户端可接受的内容编码。
  • origin:请求协议+请求域名
  • referer:请求资源地址,标识这个请求是从哪个页面;作用:服务器拿到这信息做处理,如来源统计、防盗链处理
  • user-agent:俗称  UA ,让服务器识别客户端的操作系统、系统版本、浏览器版本等信息。在做爬虫时需要加上此信息,伪装成浏览器
  • Content-type:互联网媒体类型,也称MIME类型,一般叫请求的媒体类型信息;常见的有:text/html 代表 HTML 格式,image/gif 代表 GIF 图片,application/json 代表 JSON 类型
  • Cookie:存储用户信息,一般搭配服务端的Session使用

 

请求体

Query String Paramter:请求URL后面跟的请求参数,一般是GET请求的数据

Request Playload:请求数据,一般是POST请求的数据

 

POST请求提交数据方式和Content-Type的关系


image.png


细品响应的组成


一般分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)、响应体(Response Body)

 

响应状态码

image.png


响应头

  • 包含了:服务器对请求的应答信息,如 Content-Type、Server、Set-Cookie 等
  • 常见响应信息有
  • Date:响应产生的时间
  • Last-Modified:资源的最后修改时间
  • Content-Encoding:响应内容的编码
  • Content-Length:响应内容长度
  • Server:包含服务器的信息,比如名称、版本
  • Content-Type:响应内容的文档类型,如果是接口响应,通常为application/json,也可能会加charset=utf-8指定字符集
  • Set-Cookie:设置 Cookies。响应头中的 Set-Cookie 告诉浏览器需要将此内容放在 Cookies 中,下次请求携带 Cookies 请求
  • Expires:指定响应的过期时间,可以让客户端将加载的内容更新到缓存中,如果再次访问时,可以直接从缓存中加载,降低服务器负载,缩短压缩时间

 

响应体

响应返回的内容都在响应体中,比如请求网页时,它的响应体就是网页的 HTML 代码;请求一张图片时,它的响应体就是图片的二进制数据;请求一个查询接口时,它响应体就是json字符串

相关文章
|
22天前
|
数据采集 监控 数据库
爬虫技术详解:从原理到实践
本文详细介绍了爬虫技术,从基本概念到实际操作,涵盖爬虫定义、工作流程及Python实现方法。通过使用`requests`和`BeautifulSoup`库,演示了如何发送请求、解析响应、提取和保存数据,适合初学者学习。强调了遵守法律法规的重要性。
108 4
|
2月前
|
网络协议 安全 5G
网络与通信原理
【10月更文挑战第14天】网络与通信原理涉及众多方面的知识,从信号处理到网络协议,从有线通信到无线通信,从差错控制到通信安全等。深入理解这些原理对于设计、构建和维护各种通信系统至关重要。随着技术的不断发展,网络与通信原理也在不断演进和完善,为我们的生活和工作带来了更多的便利和创新。
69 3
|
25天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
69 3
|
1月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
49 13
|
28天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
43 3
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
181 1
|
2月前
|
网络协议 Linux 应用服务中间件
Socket通信之网络协议基本原理
【10月更文挑战第10天】网络协议定义了机器间通信的标准格式,确保信息准确无损地传输。主要分为两种模型:OSI七层模型与TCP/IP模型。
|
2月前
|
存储 安全 自动驾驶
探索未来网络:量子互联网的原理与应用
【10月更文挑战第2天】 本文旨在探讨量子互联网的基本原理、技术实现及其在通讯领域的革命性应用前景。量子互联网利用量子力学原理,如量子叠加和量子纠缠,来传输信息,有望大幅提升通信的安全性和速度。通过详细阐述量子密钥分发(QKD)、量子纠缠交换和量子中继等关键技术,本文揭示了量子互联网对未来信息社会的潜在影响。