Python 爬虫入门(二) HTTP协议初步

Python 爬虫入门(二)HTTP协议初步

Python 爬虫入门(二)HTTP协议初步

  1. HTTP协议初步概述
    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
    HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

  2. HTTP协议中的URL
    HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
    咱们平时见得最多的,应该是URL(UniformResourceLocator,统一资源定位符),而URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息

    基本URL包含模式(或称协议)、服务器名称(或IP地址)、端口、路径和文件名,如“协议://授权/路径?查询”。
    完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

    一个完整的URL可以是如下示例:
    http://www.smartncepu.cn:8080/wx/Index.aspx?tamp=123&nonce=123&token=123

从上面的URL可以看出,一个完整的URL包括以下几部分:

  • 模式/协议(scheme)
    它告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hypertext Transfer Protocol,缩写为HTTP),这个协议可以用来访问网络。其他协议如下:

    • http——超文本传输协议资源
    • https——用安全套接字层传送的超文本传输协议
    • ftp——文件传输协议
    • mailto——电子邮件地址
    • ldap——轻型目录访问协议搜索
    • file——当地电脑或网上分享的文件
    • news——Usenet新闻组
    • gopher——Gopher协议
    • telnet——Telnet协议

      在上述URL例子中的协议部分为“http:”,这代表网页使用的是HTTP协议。在”HTTP:”后面的“//”为分隔符在Internet中可以使用上述多种协议,如HTTP,FTP等等。

  • 服务器名称(或IP地址)
    在上述URL例子中,填写的是www.smartncepu.cn这个域名。在实际访问中,会调用DNS解析服务,将域名映射成IP地址。所以,该部分既可以使用域名也可以使用IP地址。

  • 端口部分
    跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口如http访问默认就是80。

  • 路径目录部分
    从域名后的第一个“/”开始到最后一个“/”为止,是路径部分。在配置网站的时候,会经常采用虚拟路径来映射实际的物理路径,但是虚拟目录也不是一个URL必须的部分。在上述例子中/wx/就是一个虚拟路径。

  • 文件名部分
    从域名后的最后一个“/”开始到“?”为止,是文件名部分。往往有些时候没有“?”,那么则是从域名后的最后一个“/”开始到“#”为止,是文件部分。如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“Index.aspx”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认页的文件名

  • 参数部分
    从“?”开始到结尾的部分为参数部分,又称查询部分。本例中的参数部分为“tamp=123&nonce=123&token=123”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。而通过这种直接访问域名,将参数添加到URL中访问的方式称为get方法。接下来的部分将详细介绍两种常用的方法:get和post方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值