【python爬虫】URL各组成部分详解和HTTP协议的八种请求方法 【小虾先来学习一下URL各组成部分内容】小虾相信大家都知道IP地址唯一标识了我们internet的计算机那么我们计算机的资源是用什么标记的呢对就是用URL标记URL代表的是一个统一资源定位符它是指向互联网“资源”的指针。统一资源定位符URL由 4 部分组成协议、存放资源的主机域名、端口号和资源文件名。一个完整的URL具体可分为一下部分协议部分、域名部分、端口部分、虚拟目录部分、文件名部分、参数部分、锚部分。就用下面的网址进行介绍https://www.baidu.com:80/index.html#aa?usernamebjsxtpwdbjsxt协议部分该URL的协议为“http”这代表网页使用的是HTTP协议。在Internet中可以使用多种协议如HTTPFTP GOPHER TELNET、FILE等协议本例中使用的是HTTP协议。在”HTTP”后面的“//”为分隔符域名部分该URL的域名部分为“www.baidu.com”。在URL中也可以使用IP地址作为域名使用端口部分跟在域名后面的是端口域名和端口之间使用 “:” 作为分隔符。端口不是一个URL必须的部分如果省略端口部分将采用默认端口80是http协议的默认端口虚拟目录部分从域名后的第一个“/”开始到最后一个“/”为止是虚拟目录部分。虚拟目录也不是一个URL必须的部分。文件名部分1从域名后的最后一个“/”开始到“”为止是文件名部分2如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止是文件部分3如果没有“”和“#”那么从域名后的最后一个“/”开始到结束都是文件名部分。本例中的文件名是“index.html”。文件名部分也不是一个URL必须的部分如果省略该部分则使用默认的文件名参数部分从“”开始到“#”为止之间的部分为参数部分又称搜索部分、查询部分。本例中的参数部分为“usernamebjsxtpwdbjsxt”。参数可以允许有多个参数参数与参数之间用“”作为分隔符。锚部分HTTP请求不包括锚部分从“#”开始到最后都是锚部分。本例中的锚部分是“aa。锚部分也不是一个URL必须的部分。 锚点作用打开用户页面时滚动到该锚点位置。【URL类常用的方法】大概就有这么多对以后用到会非常有用【第二小虾先来学习一下Http协议的八种请求方法】1先来介绍一下什么是HTTP协议HTTP协议是Hyper Text Transfer Protocol超文本传输协议的缩写。HTTP是一个基于TCP/IP通信协议来传递数据HTML 文件, 图片文件, 查询结果等。HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后向客户端发送响应信息。HTTP默认端口号为80但是你也可以改为8080或者其他端口。2HTTP三点注意事项HTTP是无连接无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后即断开连接。采用这种方式可以节省传输时间。HTTP是媒体独立的这意味着只要客户端和服务器知道如何处理的数据内容任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。HTTP是无状态HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息则它必须重传这样可能导致每次连接传送的数据量增大。另一方面在服务器不需要先前信息时它的应答就较快。比较常见的一个图3HTTP的消息结构HTTP是基于客户端/服务端C/S的架构模型通过一个可靠的链接来交换信息是一个无状态的请求/响应协议。HTTP使用统一资源标识符Uniform Resource Identifiers, URI来传输数据和建立连接。一旦建立连接后数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展MIME[RFC2045]来传送。客户端请求消息客户端发送一个HTTP请求到服务器的请求消息包括以下格式请求行request line、请求头部header、空行和请求数据四个部分组成下图给出了请求报文的一般格式。服务器端响应消息HTTP响应也由四个部分组成分别是状态行、消息报头、空行和响应正文。如下图所示【4】那么下面的重点来了---Http的八种请求方法小虾做了表格查看起来更加明了】先谈点题外话---根据 HTTP 标准HTTP 请求可以使用多种请求方法。HTTP1.0 定义了三种请求方法 GET, POST 和 HEAD方法。HTTP1.1 新增了六种请求方法OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。Http一般来说就八种请求方法。上面图中第9是对PUT方法的补充其是对已知资源进行局部的更新。http服务器至少能实现get、head、post方法其他都是可选的。【结束语】这个知识小虾大概就学这么多后面涉及到的知识还有很多如果用到小虾会继续跟进的哦希望通过这篇博客可以让我们学到很多。