HTTP+HTTPS
- HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。(摘自维基百科)
简单的说http是超文本传输协议,默认端口号是80;
-
HTTPS超文本传输安全协议(英语:**Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。(摘自维基百科)
https就是http+ssl,https更为安全,但是性能更低
浏览器发送请求的过程
url—>>dns服务器获取域名的ip地址—>请求ip—>url对应的响应+css+js+img
-
url的形式
scheme://host[:port#]/path/…/[?query-string][#anchor]Scheme:协议(例如,http,https,ftp)
host:服务器的ip地址或者域名
port:服务器的端口(80,443)
path:访问资源的路径
query-string:参数,发送给http服务器的数据
anchor:锚(跳转到网页的锚点位置)
http协议的内容
-
请求行
HTTP/1.1
-
请求头
- Host (主机和端口号)
- Connection (链接类型)
- Upgrade-Insecure-Requests (升级为HTTPS请求)
- User-Agent(浏览器名称)
- Accept (传输文件类型)
- Referer (页面跳转处)
- Accept-Encoding(文件编解码格式)
- Cookie (Cookie)
9.x-requested-with :XMLHttpRequest (是Ajax 异步请求)
-
请求体
只有post请求才有请求体
常见的请求方法
get请求
-
post请求
表单一般是post请求,发送的数据量比较大
常见响应状态码
1xx: 浏览器发送的请求不完整,没有办法进行响应
2xx:请求正常完成 200
3xx:此次请求已经正常完成,需要浏览器进行进一步操作
302 307 老资源已经不在,需要再发一次请求到新资源地址
304 资源未发生变更,直接使用本地缓存
4xx:浏览器请求的资源地址有误,服务器无法提供相应
404 请求路径不存在
403 请求路径需要有权限才可以访问
5XX:服务器端响应过程中出现错误
500 服务器内部错误
字符串相关
str bytes.decode() 解码
-
bytes str.encode() 编码
str 使用encode方法转化为bytes; bytes通过decode转化为str
简单的说:
(把看的懂得转为看不懂的用编码encode,把看不懂的转为看的懂得用解码decode)
utf-8 Unicode的一种实现方式,变长的编码方式
其他
-
如何访问网站
互联网如何组织:TCP/IP协议,规定了互联网上主机的地址,通过ip地址就可以找到互联网上任意一台主机;HTTP/HTTPS协议是TCP/IP上的应用层协议,用来规定如何传送超文本文件
-
什么情况下浏览器会发送请求
- 地址栏内输入URL并回车,会获取html文件
- 碰到
<script src=""></script>回向src属性地址发送请求,获取js文件 - 碰到
<link href="">会将href中的链接地址发送请求,获取css文件 - 碰到
<img src="">会向src属性地址发送请求获取图片文件 - 在页面上执行js代码时,会发送ajax请求
- 在解析css文件时,如果碰到图片,也会发送请求
在爬虫的过程中,页面显示的效果,不一定与html文件响应回来的数据一致