笔记9-爬虫基础之HTTP基本原理

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)


    1916265-f3ea4fea54d51897.png
    图-1.png

4.1实例

1.打开Chrome浏览器
2.点击右上角-->点击更多工具-->点击开发者模式
3.打开http://www.baidu.com

1916265-c0db14b72d584e38.png
图-2.png

各列含义
1.Name:请求的名称,一般会将URL的最后一部分当做名称
2.Status:响应状态码
3.Type:请求的文档类型
4.Initiator:请求源,标记请求是哪个对象或进程发起的
5.Size:从服务器下载的文件和请求的资源大小,若从缓存中取得资源,则该列显示from cache
6.Time:发起请求到获取响应所用的总时间
7.Waterfall:网络请求的可视化瀑布流

5.请求

5.1请求方法

  • 常见的请求方法:GET和POST
  • POST与GET请求的区别
    1.GET请求中的参数都包含在URL里,POST请求不会包含这些数据,通过表单形式传输
    2.GET请求提交的数据最多只有1024字节,POST方式没有限制
    1916265-1865c590d8c55c55.png
    图-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响应体

响应结果

猜你喜欢

转载自blog.csdn.net/weixin_33980459/article/details/87425183