python网络爬虫(第三章 网页请求原理)

1.浏览网页过程

域名系统(Domain Name System,DNS)

步骤1.浏览器通过DNS服务器查找域名对应的IP地址。
步骤2.向IP地址对应的Web服务器发送请求。
步骤3.Web服务器响应请求,发回HTML页面。
步骤4.浏览器解析HTML内容,并显示出来。

请添加图片描述

2.统一资源定位符

统一资源定位符(Uniform Resource Locator,URL)是互联网上标准资源的地址。URL包括:协议头、服务器地址和文件路径

2.1协议头

协议头(Protocol Head)指:指定使用的传输协议。网络上常用的协议如下表:

常见协议代表类型
File访问本地计算机的资源
FTP访问共享主机的文件资源
HTTP超文本传输协议,访问远程网络资源
HTTPS安全的ssl加密传输协议,访问远程网络资源
Mailto访问电子邮箱地址

常见的是HTTP协议和HTTPS协议,分别由协议头http和https指定。

|

2.2服务器地址和端口

服务器地址(Hostname,IP):存放资源的服务器主机名或者IP地址;目的:表示互联网上的唯一一台计算机,通过该IP地址可以找到这台计算机
端口(Port):用于标识该计算机上运行的不同程序。每一个网络程序都对应一个或者多个特定的端口号。

3.路径

路径(Path):由零个多个“/”符号隔开的字符串,用于指定本次请求的资源在服务器中的位置。

3.计算机域名系统(DNS)

DNS(Domain Name System或Domain Name Service)–计算机域名系统将域名转化成对应的IP地址。一般的一个域名的DNS解析时间在10~60ms。

http://183.97.33.107   使用服务器地址访问百度首页,但是该地址不易记忆,因此使用域名网址访问,如:http://www.baidu.com

4.HTTP网络请求原理

浏览器的主要功能是向服务器发送请求,并在窗口中显示选择的网路资源。

**HTTP请求包括GET和POST两种方式**

5.客户端HTTP请求格式

客户端发送一个HTTP请求到服务器的请求消息,包括请求行、请求头部、空行和请求数据

5.1 请求行

请求方法描述说明
GET请求指定的网页信息,并返回实体主体
POST向指定资源提交数据进行处理请求,数据被包含在请求体中,POST请求可能会导致新的资源的建立和已有资源的修改
HEAD返回的相应没有具体内容,用于获取报头
PUT客户端向服务器传送的数据取代指定的文档内容
DELETE请求服务器删除指定的网页
CONNECTHTTP1.1协议中预留给能将连接改为管道方式的代理服务器
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,主要用于测试或诊断
GET和POST的区别:
1.GET是从服务器上获取指定页面信息,POST是向服务器提交数据并获取页面信息。
2.GET请求参数都显示在URL上,服务器根据该请求所包含URL中的参数来产生响应内容,由于请求参数都是暴露在外,所以安全性不高。
3.POST请求参数在请求体当中,消息长度没有限制而且采取隐式发送,**通常用来向HTTP服务器提交量比较大的数据**。在安全性方面,比GET请求更高。

5.2 请求行请求报头

数据描述说明
Host被请求资源的主机和端口号
Connect客户端和服务器的连接类型
Upgrade-Insecure-Requests升级为HTTPS请求
User-Agent浏览器名称:标识客户端身份的名称
Accept客户端希望接受的文件类型
Referer页面跳转来源:用于追踪Web请i去来自哪个页面,是从哪个网站来的等等
Accept-Encoding文件编解码格式
Accept-Language语言种类:zh或zh-cn[中文] en[英文]
Accept-Charset字符编码:iso-8859-1、gb2312[简体中文字符集]、utf-8[解决多种语言文本显示问题,以实现应用国际化和本地化]
Cookie记载和服务器相关的用于信息,也可以用来实现模拟登录
Content-TypePOST数据类型:指定POST请求中用来表示的内容类型

6.服务器HTTP响应格式

HTTP响应报文有四部分组成,分别是状态行、响应报头、空行和响应正文

6.1 响应报头

数据描述说明
Cache-Controlmust-revalidate、no-cache[客户端不缓存服务器资源]、private
Connectionkeep-alive:告诉客户端服务器的TCP连接是一个长连接,客户端可以继续使用这个TCP连接发送HTTP请求
Content-Encodinggzip:告诉客户端,服务器发送的资源是采用gzip编码,因此客户端需要采用gzip对资源进行编码
Content-Type告诉客户端,资源文件的类型及字符编码
DateHTTP协议发送的时间都是GMT[格林尼治所在地的标注时间] ,服务器发送资源是的服务器时间
Expires告诉客户端在该时间之前,可以直接访问缓存副本
Pragma等同于Cache-Control
Server服务器对应的版本
Transfer-Econding告诉客户端,服务器发送资源的方式是分块发送的
Vary告诉缓存服务器缓存压缩和非压缩文件,但现在的浏览器都支持压缩的,因此该报头作用不大

6.2 响应状态码

响应状态码由3位数字组成,有5中可能取值

数据描述说明
100~199服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程
200~299服务器成功接收请求并完成整个处理过程
300~399处理中,为了进一步完成请求,客户需进一步细化请求
400~499客户端的请求有错误,长用状态码如404【服务器无法找到被请求的页面】、403【服务器拒绝访问,权限不够】
500~599服务器端出现错误
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值