【网络编程】http与https

http请求过程

我们在浏览器输入http://www.baidu.com想要进入百度首页,但是这是个域名,没法准确定位到服务器的位置,所以需要通过域名解析,把域名解析成对应的ip地址,然后通过ip地址查找目的主机。整个访问过程可以概括为:

  1. 域名解析
  2. 发起TCP三次握手建立连接
  3. 建立连接后发起http请求
  4. 服务器响应请求,浏览器获取html源码
  5. 浏览器解析html代码,并请求相关css,js和图片资源
  6. 浏览器渲染页面
  7. 释放TCP连接

http状态码

  • 1xx :指示信息,表示请求已接收,继续处理
  • 2xx:成功,表示请求已被成功接收,理解,接收
  • 3xx:重定向,要完成请求必须进行更进一步操作
  • 4xx:客服端错误,请求有语法错误或请求无法实现
  • 5xx:服务端错误,服务器未能实现合法的请求

常见状态码

  • 200 :正常返回信息
  • 400 :户端请求有语法错误,不能被服务器所理解
  • 401 :请求未经授权
  • 403:服务器收到请求,但是拒绝提供服务
  • 404:请求资源不存在
  • 500:服务器发生不可预期的错误
  • 503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

GET请求与POST请求的区别

  1. http报文层面:get请求信息放在url,post放在报文中。
  2. 数据库层面:get请求符合幂等性和安全性,post不符合。
  3. 其他层面:get可以被缓存、存储,post不行

cookie与session的区别

cookie简介

  • 是由服务器发给客户端的特殊信息,以文本的形式存放在客户端
  • 客户端再次请求的时候,会把cookie回发
  • 服务器接收到后,会解析cookie生成与客户端对应的内容

session简介

  • 服务器端的机制,在服务器上保存的信息
  • 解析客户端请求并操作session id,按需保存状态信息

session实现方式

  • 使用cookie实现:服务器给每个session分配一个唯一的jsessionid,并同cookie分配给客户端。
  • 使用url回写实现:在url上携带jsessionid参数

http与https的区别

  • https需要ca申请证书,http不需要
  • https密文传输,http明文传输
  • 连接方式不同,https默认使用443端口,http使用80端口
  • https=http+加密+认证+完整性保护,较安全

SSL (Security Sockets Layer 安全套接层)

  • 为网络通信提供安全及数据完整性的一种安全协议
  • 是操作系统对外的API,SSL3.0后更名为TLS
  • 采用身份验证和数据加密保证网络通信的安全和数据的完整性

加密方式

  • 对称加密:加密和解密都使用同一个密钥
  • 非对称加密:加密使用的密钥和解密使用的密钥是不同的
  • 哈希算法:讲仁义长度的信息转换为固定长度的值,算法不可逆
  • 数字签名:证明某个消息或文件是某人发出/认同的

https数据传输流程

  • 浏览器将支持的加密算法信息发送给服务器
  • 服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
  • 浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
  • 服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器
  • 浏览器解密响应消息,并对消息进行验真,之后进行加密交互数据
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值