赞
踩
超文本传输协议,HTTP是一种按照URL指示,将超文本文档从一台主机(web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能
在用户点击URL为http://www.qq.com/index.html的链接后,浏览器(客户端)和web服务器执行以下动作:
①浏览器分析超链接中的URL
②浏览器向DNS服务器请求解析www.qq.com的ip地址
③DNS服务器将解析出的ip地址返回浏览器
④浏览器根据得到的ip地址找到对应的web服务器,并建立TCP三次握手
⑤建立连接后,浏览器向web服务器发送http请求(GET /index.html)
⑥服务器给出响应,将文档index.html发送给浏览器,用html代码中的资源渲染页面
⑦TCP四次挥手释放连接
假设你要查询www.baidu.com的ip地址
1、首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的ip地址,找到就直接返回;否则进行下一步
2、客户端将请求递归发送给本地DNS服务器,如果查找到也直接返回,否则继续进行下一步
3、本地DNS服务器进行迭代查询,首先向根域名服务器发送请求,根域名服务器返回负责.com的顶级域名服务器的ip地址的列表
4、本地DNS服务器再向其中一个负责.com的顶级域名服务器发送一个请求,返回负责.baidu的权威域名服务器的ip地址列表
5、本地域名服务器再向其中一个权威域名服务器(次顶级域名服务器)发送一个请求,返回www.baidu.com所对应的ip地址
①请求报文的方法
方法 | 描述 |
GET | 对服务器资源获取的简单请求 |
POST | 用于发送包含用户提交数据的请求 |
PUT | 请求存储一个web页面 |
②GET请求方式与POST的区别
请求方式 | GET | POST |
数据包 | 产生一个TCP数据包 | 可能产生两个TCP数据包 |
编码方式 | 只能进行url编码 | 支持多种编码方式 |
请求参数 | 把参数包含在URL中,用&连接起来 | 通过POST包的data字段传输参数 |
请求缓存 | 会被主动Cache | 不会缓存,除非手动设置 |
收藏为书签 | 支持收藏为书签 | 不支持 |
历史记录 | 参数会被完整保留在浏览历史记录里 | 不会保留 |
参数数据类型 | ASCll的字符 | 没有限制数据类型 |
状态码 | 含义 | 例子 |
1xx | 通知信息 | 100=服务器正在处理客户请求 |
2xx | 成功 | 200=请求成功(OK) |
3xx | 重定向 | 301=永久性重定向;302=暂时性重定向 |
4xx | 客户端错误 | 403=服务器禁止访问,权限有关;404=服务器无法找到资源 |
5xx | 服务器端错误 | 500=服务器内部错误;503=以后再试 |
1、User-Agent
浏览器标识(操作系统标识、浏览器语言、版本信息)
2、Host
服务器的DNS名称,包含URL
3、Server
响应头包含处理请求的原始服务器的软件信息
4、Referer
浏览器向web服务器表明自己是从哪个网页/URL/点击获得当前请求ip的网址
5、Location
web服务器告知浏览器,试图访问的对象已经被移到别的位置了,到该头部指定的位置去取
1、HTTP/1.0
默认是短连接,每次请求都要建立一个TCP连接,可以强制开启长连接
2、HTTP/1.1
默认长连接,即TCP连接默认不关闭,可以被多个请求复用。在同一个TCP连接里,客户端可以同时发送多个请求
3、HTTP/2.0
二进制协议。完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应
4、连接超时问题
①在交互过程中,HTTP中的响应体的Connection字段的keep-alive起着至关重要的作用
②对于HTTP的短连接和长连接实际上是TCP的长短连接
③keep-alive字段的重要参数
⑴tcp_keep_time:keepalive的空闲时长,默认两个小时
⑵tcp_keep_probes:在tcp_keep_time之后,没有接收到对方的确认,继续发送保活探测包的次数,默认为10次
⑶tcp_keep_intvl:keepalive探测包的发送间隔,默认为75秒
1、Session是服务器和客户端的一次会话过程
2、Cookie是保存客户端的一小块文本串的数据
3、Session和Cookie的产生过程
用户第一次请求服务器时,服务器根据用户提交的信息,创建对应的Session ID,并在请求返回时将Session ID返回给浏览器。浏览器在收到Session ID后,会将此信息存入Cookie中,同时Cookie记录此Session ID是属于哪个域名。当用户第二次访问服务器时,请求会自动判断此域名下是否存在Cookie信息,如果存在,则自动将Cookie信息也发送给服务器,服务器会从Cookie中获取Session ID,再根据Session ID查找对应的Session信息。
4、Session和Cookie的区别
Session | Cookie | |
存放位置 | 服务器 | 客户端 |
存储数据类型 | 任意数据类型 | ASCLL |
安全性 | 较高 | 较低 |
存储空间大小 | 大 | 小 |
有效期 | 较短,超时或客户端关闭都会失效 | 可设置长时间保存 |
1、安全超文本传输协议,HTTPS是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,即HTTPS=HTTP+SSL/TLS
2、SSL,安全套接字层协议,位于传输层和应用层之间的一种协议层,是网络通信提供安全及数据完整性的一种安全协议。主要通过三个协议实现:SSL握手协议、SSL修改密文协议、SSL报警协议
3、TLS,安全传输层协议,它是SSL3.0的后续版本
①客户端向服务器端发起HTTPS请求,连接到服务器端的443端口
②服务器端保留自己的私钥、公钥放在数字证书里
③服务器端返回SSL证书信息(证书内容有公钥、证书颁发机构、失效日期)和服务器端随机数
④客户端验证证书的合法性,如果证书合法,则生成一个随机的会话主密钥(对称),并用服务器的公钥加密
⑤客户端将加密后的密钥发送到服务器
⑥服务器端收到客户端发送的密钥后,用自己的私钥进行解密,得到客户端的会话主密钥
⑦服务器端将数据用会话主密钥加密后传输到客户端
⑧客户端用自己的密钥进行对称解密,得到服务器返回的数据
1、数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,它的出现是为了防止公钥被篡改
2、公钥和个人等信息,经过Hash摘要算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心CA,用它的私钥对消息摘要加密,形成数字签名。公钥和个人信息、证书颁发机构和失效日期、数字签名共同构成数字证书
1、对称加密是指加密和解密使用同一密钥。常见的对称加密算法有DES、AES
2、非对称加密是指加密和解密使用不同的密钥(即公钥和私钥)。公钥和私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解开。常见的非对称加密算法有RSA
3、对称加密和非对称加密的区别
对称加密 | 非对称加密 | |
密钥 | 加密解密使用同一密钥 | 加密解密使用不同密钥 |
安全性 | 低 | 高 |
数字签名 | 不可使用数字签名 | 可以使用数字签名 |
运算速度 | 快 | 慢 |
HTTP | HTTPS | |
安全性 | 不安全 | 安全 |
默认端口 | 80 | 443 |
资源消耗 | 较少 | 较多 |
是否需要证书 | 不需要 | 需要 |
报文是否加密 | 不加密 | 加密 |
URL存放位置 | GET请求的host字段 | SSL协议中Client_hello报文的server_name字段 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。