笔记9-爬虫基础之HTTP基本原理
2019-01-11 本文已影响0人
路由心定
1.URI、URL、URN的关系
- URI-Uniform Resource Identifier:统一资源
标志
符 - URL-Universal Resource Locator:统一资源
定位
符 - URN- Universal Resource Name:统一资源
名称
https://github.com/favicon.ico
由访问协议https+访问路径github.com+资源名称favicon.ico 组成
URL是URI的子集:每个URL都是URI
URN是URI的子集:每个URN都是URI,URN只命名资源不指定具体获得路径例如上面地址URN只给最后面的favicon.ico,没有指明具体路径
URN用的很少,几乎不用,所以几乎所有的URI都是URL
2.超文本-[英文名:hypertext]
- 网页源代码都可以叫做超文本
3.HTTP与HTTPS
- HTTP的全称Hyper Text Transfer Protocol--超文本传输协议(HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议)
- HTTPS的全称Hyper Text Transfer Protocol over Secure Socket Layer(简单讲就是HTTP的安全版-在HTTP下加入SSL,简称HTTPS)
HTTPS的主要作用分为两种:
1.建立一个信息安全通道保证信息传输的安全
2.确认网站真实性
4.HTTP请求过程
-
在浏览器输入URL-->回车-->浏览器向网站发送请求-->网站服务器处理和解析-->返回响应(图-1)
图-1.png
4.1实例
1.
打开Chrome浏览器
2.
点击右上角-->点击更多工具-->点击开发者模式
3.
打开http://www.baidu.com
各列含义
1.
Name:请求的名称,一般会将URL的最后一部分当做名称2.
Status:响应状态码3.
Type:请求的文档类型4.
Initiator:请求源,标记请求是哪个对象或进程发起的5.
Size:从服务器下载的文件和请求的资源大小,若从缓存中取得资源,则该列显示from cache6.
Time:发起请求到获取响应所用的总时间7.
Waterfall:网络请求的可视化瀑布流
5.请求
5.1请求方法
- 常见的请求方法:GET和POST
- POST与GET请求的区别
1.
GET请求中的参数都包含在URL里,POST请求不会包含这些数据,通过表单形式传输
2.
GET请求提交的数据最多只有1024字节,POST方式没有限制
图-3.png
5.2请求头
请求头:
用来说明服务器要使用的附加信息,比如Cookie、Referer、User-Agent等
-
Accept:请求报头域,用于指定
客户端
可接受哪些类型信息 - Accept-Language:指定客户端可接受的语言类型
- Accept-Encoding:指定客户端可接受的内容编码
- Host:指定请求资源的主机IP和端口号
- Cookie:网站为了辨别用户进行会话跟踪而存储在用户本地的数据,主要功能是维持当前访问会话
- Referer 标识请求从哪个页面发过来的
- User-Agent:简称UA,是一个特殊的字符串头,可以使服务器识别客户使用的操作系统以及版本、浏览器以及版本信息
- Content-Type:也叫作互联网媒体类型或者MIME,用来标识具体请求中的媒体类型信息,text/html代表HTML格式,image/gif代表GIF图片,application/json代表JSON类型
5.3请求体
- 请求体中的内容一般是POST请求中的表单数据,GET请求,请求体为空
Content-Type和POST提交数据方式的关系:{application/x-www-form-urlencoded:表单数据;multipart/form-data:表单文件上传;application/json:序列化JSON数据;text/xml:XML数据}
6.响应
-响应包含三部分:响应状态码(Response Status Code)
、响应头(Response Headers)
、响应体(Response Body)
6.1响应状态码
- 响应状态码表示服务器的响应状态,在爬虫中我们可以根据状态码来判断服务器响应状态
-常见错误码可参考文章:常见错误码详解
6.2响应头
-响应头包含了服务器对请求的应答信息,如Content-Type、Server、Set-Cookie
Date
:标识响应产生的时间
Last-Modified
:指定资源的最后修改时间
Content-Encoding
:指定响应内容的编码
Server
:包含服务器信息
Content-Type
:文档类型
Set-Cookie
:设置Cookies,响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies
Expires
:指定响应的过期时间
6.3响应体
响应结果