网络请求基础
目录
1.网络请求过程
URL介绍
- URL请求的网址,即统一资源定位符,他可以唯一确定我们想请求的资源,其结构如下:
https://www.baidu.com/
1.1网络请求过程
#请求过程
客户端,通常指web浏览器或APP向服务器发起请求,并向客户端发起请求
# 用dango做对比:
用户访问url ---> uwsgi ---> 框架:urls.py ---> 视图 --> 响应 ---> uwsgi ---> 浏览器 ---> 渲染
图例:
2.请求涉及的基础
2.1请求
# 请求:由客户端向服务器发起的,可以分为四部分内容:
请求方法(Request Methods),
请求网址(Requets URL),
请求头(Requets Header),
请求体(Requets Body)
2.2 请求方法
# 请求方法: 常见有8种
- GET:请求页面,并返回页面内容 # 重点
- POST:用于提交表单数据或上传文件,数据包含在请求体中 # 重点
- PUT: 从客户端向服务端传送的数据取代指定文档中的内容
- DELETE:请求服务器删除指定的页面
- HEAD:类似GET请求,只不过返回的响应中没有具体的内容,用于获取数据报头
- CONNECT:把服务器当做跳板,让服务器代替客户端访问其他网页
- OPTIONS:允许客户端查看服务器的性能
- TRACE:回显服务器收到的请求,主动用于测试或诊断
# 重点掌握GET & POST: GET与POST的区别(重点) -->(面试出镜率高)
1.GET请求中的参数包含在URL里面,数据可以在URL 中看到,
而POST请求的URL不会包含这些数据,POST的数据都是通过表单形式传输的,会包含在请求体中
2.GET 请求提交的数据最多只有1024字节,而POST方式没有限制
3.POST请求比GET请求相对安全
2.3 请求头
请求头,用来说明服务器要是用的附加信息。重点掌握:Accept,Cookie,Referer,User-Agent,Host
1.Accpect: 请求包头域,用于指定客户端可接受哪些类型的信息 # 重点(*/*)
2.Cookie: 也常用复数形式,Cookies,这是网站为了辨别用户进行会话跟踪而储存在用户本地的数据。
他的主要功能是维持当前访问会话。例如,我们输入用户名和密码成功登陆某个网站后,服务器会用会话保存登录状态信息,
后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies的功劳。Cookies并将其发送给服务器,
服务器通过Cookies识别出是我们自己,并且查处当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容 # 重点
3.Referer:此内容用来表示这个请求时从哪个页面发送过来的,服务器可以拿到这一信息并做相应的处理,如做统计、防盗链处理等 # 重点
4.User-Agent:简称UA,他是一个特殊的字符串头,可以是服务器识别用户的操作系统及版本、浏览器及版本等信息。在做爬虫时,加上此信息。可以伪装为浏览器。如果不加,很可能会被识别出来为爬虫 # 重点
5. x-requested-with:XMLHTTPRequest # 代表ajax请求
6. Accept-Language:指定客户端可接受的语言类型
7. Accept-Encoding: 指定客户端可接受的内容编码
8. Content-Type: 也叫互联网媒体类型(Internet Meida Type)或者MIME类型,在HTTP协议消息头中,他用来标识具体请求的媒体类型信息。例如: tetx/html代表HTML格式等
2.4请求体
# 请求体:
请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,,请求体则为空。
# get获取页面资源
# get和post是否都能向服务器传递数据
3.响应涉及的基础
3.1 响应介绍:
# 响应,是由服务器返回给客户端的,
可以分为三部分:响应状态码(requets status code),
响应头(requets header),响应体(requets body)
3.2 响应状态码
# 响应状态码:用于判断请求后的响应状态,例如200代表成功,404代表页面找不到,500代表服务器错误
# 常见状态码:
200系列:
200 成功 服务器已经处理了请求 # 重点
300系列:
301 永久移动 请求的网页已经永久移动到新位置,即永久重定向 # 重点
302 临时移动 请求的网页暂时跳转到其他页面, 即暂时重定向 # 重点
400系列:
400 错误请求 服务器无法解析该请求 # 重点
401 未授权 请求没有进行身份验证或验证未通过
403 禁止访问 服务器拒绝此请求 # 重点
404 未找到 服务器找不到请求的网页
500系列:
500 服务器内部错误 服务器遇到错误,,无法完成请求 # 重点
501 未实现 服务器不具备完成请求的功能
502 错误网关 服务器作为网关或代理,从上游服务器收到无效响应
504 网关超时 服务器作为网关或代理,但是没有及时从上游服务器收到请求
505 HTTP版本不支持 服务器不支持请求中所用的HTTP协议版本
注意:状态码不能完全代表响应状态,部分网站的状态码是自定义的,一切以响应的数据为准)
3.3 响应头介绍:
# 响应头:
响应头包含了服务器队请求的应答信息
- Date:标识响应产生的时间
- Content-Encoding:指定响应内容的编码。
- Server:包含服务器的信息,比如名称、版本号等。
- Content-Type:文档类型。指定返回的数据类型是什么,比如text/html代表返回HTML文档。
- application/x-javascript 则代表返回JavaScript文件,image/jpeg则代表返回图片。
- Set-Cookie:设置Cookies。响应头中的Set-Cooksie告诉浏览器需要将此内容放在Cokies中,
下次请求携带Cookies请求。
- Expires:指定响应的过期时间,可以使用代理服务器或浏览器将加载内容更新到缓存中。
如果再次访问时,就可以直接从缓存中加载,降低服务器负载,缩短缓存加载时间。
3.4 响应体介绍
# 响应体:重要
最重要的当属响应体的内容了。
响应的正文数据都在响应体中,比如请求网页时,
他的响应体就是网页的HTML代码,请求一张图片时,
他的响应体就是图片的二进制数据。我们做爬虫请求网页后,
要解析的内容就是响应体。
4.网页基础
4.1网页组成
网页可以分为三部分,HTML,CSS,JacaScript
1.HTML:其全称叫做Hyper Text Markup Language。即超文本标记语言。定义了网页的样式
2.CSS:全程叫做Cascading Style Sheets。即层叠样式表。
3.JavaScript:简称JS,是一种脚本语言,
定义了网页与用户的交互行为,如下载进度条,提示框,轮播图.