HTTP/HTTPS

HTTP(Hyper Text Transfer Protocol):超文本传输协议。规定万维网服务器与浏览器之间信息传递规范。
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的HTTP协议,简单地讲就是HTTP的安全版,加入了SSL加密层。

URL

URL(Universal Resource Locator):统一资源定位符。互联网上的每个文件都有一个唯一的URL。
格式:传输协议+域名+端口号+路径+文件名

HTTP请求过程

在浏览器输入URL按下回车便是通过浏览器向网站服务器发送了一个请求。网站服务器接收到这个请求后进行处理,然后返回对应的响应给浏览器。浏览器再对收到的响应解析,将网页呈现出来。

在Chrom浏览器中,右键选择【检查】,即可打开浏览器的开发者工具,选择“NetWork”条目。输入百度的URL回车,观察这个网络请求的过程。
爬虫基础:HTTP基本原理-LMLPHP

  • 第一列Name:请求的名称,一般会将URL的最后一部分内容当作名称。
  • 第二列Status:响应的状态码,200代表正常,403代表进制访问,404代表未找到……
  • 第三列Type:请求的文件类型。document代表html文档,还有png、gif图片,script脚本等。
  • 第四列Initiator:请求源。用来标记请求是由哪个对象或进程发起的。
  • 第五列Size:从服务器下载的文件资源大小。如**KB,disk cache代表从磁盘中获取,memory cache代表从内存中获取。参考
  • 第六列Time:从发起请求到获得响应的总时间。

我们只输入了一个URL却看到一连串的请求。这是因为浏览器收到响应后,就开始解析其中的html代码,遇到js/css/image等静态资源时,就向服务器端去请求下载。比如点击bd_log1.png这个请求,然后点击Preview可以看预览,就是百度的logo。参考
爬虫基础:HTTP基本原理-LMLPHP
点击一个条目,可以看到详细信息。
爬虫基础:HTTP基本原理-LMLPHP

General部分包含URL、请求方法、响应状态码、远程服务器地址端口。

请求方法常用的有两种:GET和POST。主要区别是GET请求中的参数包含在URL中(最多1024字节),可以在URL中看到。而POST请求以表单的形式传输参数,参数包含在请求体中,大小无限制。

Request Headers请求头

Accept:说明客户端可以接受哪些类型的信息。
User-Agent:使服务器识别客户使用的操作系统、浏览器及版本等信息。例如:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

直接用python请求时默认为:

User-Agent: Python-urllib/3.7

有的网站可以通过识别 User-Agent 拒绝爬虫,所以可以自己设置User-Agent伪装成浏览器。

Cookie:网站为了辨别用户进行会话跟踪而存储在用户本地的数据。比如登录了一个网站,服务器给你设置了Cookie,以后只要在请求中加入Cookie,服务器就知道你已经登录过了,不用重新登录就可以继续访问了。

请求体:一般是POST请求中的表单数据,而GET请求体为空。

Response Headers响应头

  • Date:响应的日期时间
  • Sever:包含服务器的信息,名称、版本号等。如BWS/1.1应该是Baidu Web Sever百度研发的web服务器。常见的还有Apache、IIS等。
  • Set-Cookie:设置Cookie。告诉浏览器下次请求携带Cookie内容。

响应体:html代码或者下载文件的二进制数据。点击“Preview”,就可以看到响应体的内容,它也是解析的目标。

07-11 19:46