http基础概念
1.http(tcp/ip)
超文本传输协议 80端口
三层:http 、 TCP、 IP
是一个客户端与服务器端请求和应答的标准(TCP)
HTTP使用TCP而不是UDP的原因在于打开一个网页必须传送很多数据,而TCP协议提供传输控制、按顺序组织数据和错误纠正。

TCP和UDP的区别:
tcp 面向连接,udp 面向报文
tcp 对系统资源的要求多 udp 结构简单
tcp 保证数据完整性和顺序,udp 不保证
三次握手四次挥手
三次握手
第一次握手:客户端先发送一个带 SYN 标志的数据包给对方。
第二次握手:服务器端收到之后,回传一个带有 SYN/ACK 标志的数据包表示传达确认信息。
第三次握手:最后,客户端再传回一个带 ACK 标志的数据包,表示 “握手” 结束。
四次挥手
四次挥手(Four-Way Wavehand)指断开一个 TCP 连接时,需要客户端和服务端总共发送 4 个包以确认连接的断开。
第一次挥手客户端发送一个 FIN ,用来关闭客户端到服务端的数据传送,客户端进入 FIN_WAIT_1 状态。
第二次挥手服务端收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号 +1,服务端进入CLOSE_WAIT 状态。
第三次挥手服务端发送一个 FIN ,用来关闭服务端到客户端的数据传送,服务端进入 LAST_ACK 状态。
第四次挥手客户端收到 FIN 后,客户端进入 TIME_WAIT 状态,接着发送一个 ACK 给服务端,确认序号为收到序号 +1,服务端进入 CLOSED 状态,完成四次挥手。
HTTP简要通信过程
建立连接——>发送请求数据包——>返回响应数据包——>关闭连接
-
浏览器建立与 web 服务器之间的连接
-
浏览器将请求数据打包(生成请求数据包)并发送到 web 服务器
-
web 服务器将处理结果打包(生成响应数据包)并发送给浏览器
-
web 服务器关闭连接
2.https
超文本传输安全协议 443端口
四层,有加密:http 、ssl or TLs 、TCP 、IP
是超文本传输协议+SSL/TLS的组合。 来加密通信和对网络服务器身份的鉴定。
通信使用明文,内容会被窃听
不验证通信方的身份,可能遭遇伪装
无法证明报文的完整性,可能已遭到篡改
修复:
加密:通信加密(使用https)和内容加密(http报文中包含的内容加密)
查明对方的证书。ssl不仅可以加密处理,还使用证书手段。 证书是由值得信任的第三方机构颁发,来证明服务器和客户端是真实存在的。 客户端持有证书用于个人身份的认证确认,和web网站的认证环节
可使用MD5和SHA-1等散列值校验,以及用数字签名(PGP签名)对内容加密。也不能完全保证安全。。。
HTTPS 的工作流程
首先是客户端向服务器端发起一个 HTTPS 请求。
服务器端返回公钥证书给客户端。
客户端收到公钥证书后,用证书的公钥验证数字签名,以确认服务器的公钥的真实性。
客户端用随机数生成器生成临时的会话密钥,然后用服务器的公钥对该会话密钥进行加密,发送给服务器端。
服务器收到后,用自己的密钥对会话密钥解密。
之后客户端和服务器端就开始了 HTTPS 通信。
3.URI
URI是用于标识某一互联网资源名称的字符串。
允许用户对互联网中的资源通过特定的协议进行交互操作,包括语法和相关协议的定义
1)URL
统一资源定位器,也称网页地址。


4.http消息
HTTP 消息由从客户到服务器的请求和从服务器到客户的回答组成。
1)http方法
GET:获取服务器资源。
POST:提交信息给服务器
PUT:传输文件。
HEAD:和 GET 方法一样。但是只返回响应头部。作用是确定 URL 的有效性和资源更新的时间。
DELETE:删除指定的资源。
OPTIONS:查询请求服务器指定的资源所支持的方法。
TRACE:用来确认连接过程中发生的一些操作。
CONNECT:建立连接渠道,用于代理服务器。
2)HTTP状态码
1xx 信息,请求收到,继续处理
2xx 成功,行为被成功地接受、理解和采纳
3xx 重定向,为了完成请求,必须进一步执行的操作
4xx 客户端错误
5xx 服务器错误
200存在文件
403存在文件夹
3xx 均可能存在
404 不存在文件及文件夹
500 均有可能
5.http cookie
cookie
Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:
当用户访问 web 页面时,他的名字可以记录在 cookie 中。 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录
Session
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
Cookie是用来跟踪会话
cookie和session的区别
1.cookie数据存放在客户的浏览器上,session数据放在服务器上.
2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3.设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。
4.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。
5.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)

浙公网安备 33010602011771号