HTTP与HTTPS请求

网络爬虫工作过程可以理解为模拟浏览器操作的过程,浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示服务器返回的网络资源。

一、浏览器处理网页的过程:
1.在浏览器输入URL地址,浏览器先通过DNS服务器查找URL的域名对应的IP地址。

2.浏览器会向IP地址对应的web服务器发送HTTP请求,去获取该IP所对应的的html文件,Web服务器响应请求,将html文件发送回给浏览器

3.浏览器分析服务器返回的HTML文件,发现其中引用了很多其他文件,比如图片文件,css文件,js文件。浏览器会自动再次发送每个文件的HTTP请求,去获取这些文件。
HTTP请求过程

1.URL
统一资源定位符,用于完整地描述internet上网页和其他资源的地址的一种标识方法。
基本格式: scheme://host[:port]/path/[?query-string][#anchor]

  • scheme:协议(例如:http, https, ftp等)
  • host:服务器的域名 或 IP地址
  • port:服务器的端口(如果是走协议默认端口,HTTP缺省端口80)
  • path:访问资源的路径
  • query-string:查询字符串参数,发送给http服务器的数据
  • anchor:锚点(跳转到网页的指定锚点位置)

2.DNS
DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,由解析器和域名服务器组成的。
解析器用来解析URL地址对应的域名,而域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

一个域名必须对应一个IP地址,而一个IP地址不一定会有域名。

3.HTTP和HTTPS
HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。

SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。
HTTP的端口号为80,HTTPS端口号为443

二、HTTP的请求与响应

HTTP通信由两部分组成: 客户端请求消息 与 服务器响应消息

客户端HTTP请求
URL只是标识资源的位置,而HTTP是用来提交和获取资源。客户端发送一个HTTP请求到服务器的请求消息,包括以下格式:

请求行、请求头部、空行、请求数据 四部分组成
这里写图片描述

一个典型的HTTP请求示例

GET https://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://www.baidu.com/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: BAIDUID=04E4001F34EA74AD4601512DD3C41A7B:FG=1; BIDUPSID=04E4001F34EA74AD4601512DD3C41A7B; PSTM=1470329258; MCITY=-343%3A340%3A; H_PS_PSSID=1447_18240_21105_21386_21454_21409_21554; BD_UPN=12314753; sug=3; sugstore=0; ORIGIN=0; bdime=0; H_PS_645EC=7e2ad3QHl181NSPbFbd7PRUCE1LlufzxrcFmwYin0E6b%2BW8bbTMKHZbDP0g; BDSVRTM=0

请求方法

GET https://www.baidu.com/ HTTP/1.1

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP 0.9:只有基本的文本 GET 功能。

HTTP 1.0:完善的请求/响应模型,并将协议补充完整,定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP 1.1:在 1.0 基础上进行更新,新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
这里写图片描述
常用的还是GET与POST请求

GET是从服务器上获取指定页面信息,POST是向服务器提交数据并获取页面信息。

GET请求参数都显示在URL上,服务器根据该请求所包含URL中的QueryString参数来产生响应内容。 “Get” 请求的参数 是URL的一部分。

POST请求参数在请求体Formdata中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等)。 “POST”请求的参数 不在URL中,而在请求体中。

猜你喜欢

转载自blog.csdn.net/hr504883750/article/details/81809463