HTTP基本原理

Posted ioswws

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP基本原理相关的知识,希望对你有一定的参考价值。

URI 和 URL

这里我们先了解一下 URI和 URL,URI 的全称为 UniformResource Identifier,即统一资源标志符, URL 的全称为 Universal Resource Locator,即统一资源定位符。

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

 

超文本

我们再了解一个概念一一超文本,其英文名称叫作 hypertext,我们在浏览棉里看到的网 页就是超文本解析而成的, 其网页源代码是一系列 html代码, 里面包含了一系列标签,比如 img显 示图片, p 指定显示段落等 。 浏览器解析这些标签后,便形成了我们平常看到的网页,而网页的源代 码 HTML 就可以称作超文本 。

例如,我们在 Chrome浏览器里面打开任意一个页面,如淘宝首页,右击任一地方井选择“检查” 项(或者直接按快捷键 Fl2 ), 即可打开浏览器的开发者工具,这时在 Elements 选项卡即可看到当前 阿页的源代码,这些源代码都是超文本。

 

HTTP 和 HTTPS

在淘宝的首页 https://www.taobao.com/中, URL 的开头会有 http或 https,这就是访问资源需要的 协议类型。 有时,我们还会看到ftp、sfrp 、 smb开头的 URL,它们都是协议类型。 在爬虫中,我们抓 取的页面通常就是 http或 ht耶协议的,这里首先了解一下这两个协议的含义 。

HTTP 的全称是 Hyper Text Transfer Protocol,中文名 叫作超文本传输协议 。 HTTP 协议是用于从 网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。 HTTP 由万 维网协会( World Wide Web Consortium )和 Internet工作小组 IETF ( Internet Engineering Task Force ) 共同合作制定的规范,目前广泛使用的是 HTTP 1.1版本。

而某些网站虽然使用了 HTTPS协议,但还是会被浏览器提示不安全,例如我们在 Chrome浏览器里面打开 12306,链接为: https://www.l2306.cn/,这时浏览器就会提示“您的连接不是私密连接”这 样的话,

这是因为 12306的 CA证书是中国铁道部自行签发的,而这个证书是不被 CA机构信任的,所以 这里证书验证就不会通过而提示这样的话,但是实际上它的数据传输依然是经过 SSL加密的。 如果要爬取这样的站点,就需要设置忽略证书的选项,否则会提示 SSL链接错误。

 

请求

请求,由客户端向服务端发出,可以分为 4部分内容:请求方法( Request Method )、 请求的网址 ( Request URL )、请求头( Request Headers )、 请求体( Request Body )。

1. 请求方法

常见的请求方法有两种: GET和POST。

在浏览器中直接输入 URL 井回车,这便发起了一个 GET 请求,请求的参数会直接包含到 URL 里 。 例如,在百度中搜索 Python,这就是一个 GET请求,链接为 htψs://www.baidu.corn/s?wd=Python , 其中 URL 中包含了请求的参数信息,这里参数 wd 表示要搜寻的关键字。 POST请求大多在表单提交 时发起 。 比如,对于一个登录表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个 POST 请求,其数据通常以表单的形式传输,而不会体现在 URL 中 。

GET 和 POST请求方法有如下区别 。

GET请求中的参数包含在 URL里面,数据可以在 URL中看到,而 POST请求的 URL不会包 含这些数据,数据都是通过表单形式传输的,会包含在请求体中 。

GET请求提交的数据最多只有 1024字节,而 POST方式没有限制 。

一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用 GET 方式请求的话, 密码就会暴露在 URL里面,造成密码泄露,所以这里最好以 POST方式发送。 上传文件时,由于文件 内容比较大,也会选用 POST方式。

我们平常遇到的绝大部分请求都是 GET或 POST请求,另外还有一些请求方法,如 GET、HEAD、 POST、 PUT、 DELETE、 OPTIONS、 CONNECT、 TRACE等

 

以上是关于HTTP基本原理的主要内容,如果未能解决你的问题,请参考以下文章

网络爬虫之HTTP基本原理

HTTP协议基本原理

HTTP基本原理

Python 爬虫 2HTTP基本原理

爬虫基础——HTTP基本原理

HTTP基本原理