浅谈网络请求基础(理论篇)

Posted xiangnuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈网络请求基础(理论篇)相关的知识,希望对你有一定的参考价值。

网络请求基础

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,是一种脚本语言,
	定义了网页与用户的交互行为,如下载进度条,提示框,轮播图.

以上是关于浅谈网络请求基础(理论篇)的主要内容,如果未能解决你的问题,请参考以下文章

网络篇网络理论基础入门

网络篇网络理论基础入门

网络篇网络理论基础入门

对比学习资料《深度学习入门:基于Python的理论与实现》+《深度学习原理与实践》+《深度学习理论与实战基础篇》电子资料

浅谈通信网络终结篇——网路

Centos 7防火墙基础——理论篇