理解HTML HTTP URL和API
学习与网络编程相关或是python爬虫的时候,涉及到理解与互联网相关的一些概念,对这些概念理解的深度,最终决定了相关领域所能达到的高度。
HTML
HTM(Hyper Text Marked Language),即超文本标记语言。
比较通俗的定义:网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。
举个例子。在word文档里,我们可以编辑文字,图片,表格等等,可以对字体加粗、下划线。而在浏览器上我们如果想让编辑类似这样的效果该如何实现呢?就需要用到HTML语言。
在word里我们是通过自己设置字体,排版等实现对文字的排版,而在浏览器上,我们根据HTML语言的规则,“设置”浏览器将要以什么样的形式呈现我们的内容。
HTTP
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。
其中,‘请求’是指用户想服务器发起的资源请求,‘响应’是指服务器对用户的请求作出的响应,‘无状态’是指用户与服务器之间的这种连接是一次性的,服务器不保留与客户交易时的任何状态,第二次连接与第一次连接没有任何关系,‘应用层’是指HTTP协议位于应用层上,也就是架构在TCP协议上。
简单来说,网络上的各种资源平时都存储在服务器(server)上,如果我们想要浏览网页,或者下载文件(获取资源–requset),是需要通过因特网向服务器申请,申请过程中的“申请表”就是HTTP协议,服务器根据我们的“申请表”决定要不要将资源返回给我们(响应responce)。
这张图很好的揭示了HTTP协议的工作流程。
我们对HTTP协议的具体工作过程不做过多的阐述,忽略掉建立TCP连接这一步,重点来看看请求和响应的文件内容。
http请求
先看看申请表——HTTP请求中都需要哪些内容呢?
http请求一般由三部分构成: