https(1)


重点:

  • 理解应用层的作用,初始HTTP协议。
  • 理解传输层的作用,深入理解TCP的各项特征和机制。
  • 对整个TCP/IP有系统的理解。
  • 对TCP/IP协议体系下的其他重要协议和技术有一定的了解。
  • 学会使用一些分析网络问题的工具和方法。

序列化和反序列化

  • 在计算机网络模型中,应用层是在最上面的,我们程序员开发的程序大都在这一层。
  • 在我们之前编写的网络通信模型中,传输的都是字符串,那么如果想要实现结构化数据的传输,怎么办呢?
  • 比如,我想传输结构体数据。

序列化:
将结构化数据转换成"字符串",实现多变1.
反序列化:
将"字符串"变成结构化数据。

  • 定制如何进行序列化和反序列化实际上就是定制协议的过程。

HTTP协议

  • http是典型的应用层协议,它是超文本传输协议。生活中无处不见http,包括现在使用校多的https也是在http的基础上对数据进行了加密处理,提高了安全性。
  • http是程序员自己定义的协议,不属于内核。

URL, 网址

  • 在我们生活中,要想访问一个网站需要网址,而网址就是URL(统一资源定位符),URL的组成如下:

URL

  • 这里的文件路径不是从通常意义上的根目录开始的,而是Web根目录。Web根目录可能部署在任何一个目录上。
  • 登录信息一般忽略。我们使用更私密的方式传递信息。
  • @后面的就是域名,对应的ip地址。
  • 一般情况下请求服务器端口号是不能省略的,但是浏览器一般不写,因为浏览器知道对应协议的端口号。http是80,https是443。
  • ?后面的是参数。代表你想传递给服务器的信息,使用kv值的方法。我们的互联网行为就分两种,把数据从服务器上拿下来,或者把数据传入服务器。
  • #后面的是片段标识符,表示图片之类的顺序。

urlencode和urldecode

  • 因为在url中,/和?这样的字符已经有特殊的含义,所以在使用的时候,就必须先对这样的字符进行转义(encode),等发送到服务器端,再进行还原(decode)。

http基本特征

1, 无连接

  • tcp的连接和http无关。一旦底层tcp的连接建立完成,http不用建立连接直接发送。

2, 无状态

  • http协议本身无状态,并不会记录用户任何信息,只进行request->response。但是我们生活中登录一个网站,是会记录我们的浏览信息的。记录信息的技术不是http,而是cookie+session。

3, 简单快速

  • 早期的http(1.0)是基于短连接进行文本传输的。
  • http/1.1 : 基于长连接

http协议格式

http协议请求(request)格式:

request
request

  • 请求的第一行叫做请求行,请求行由请求方法,请求的资源地址和协议的版本号组成。
  • 请求行下面的叫做请求报头,主要由大量的kv值对组成。
  • 请求行和请求报头可以简称报头,那么我们如何将报头和正文分离呢?没错,检测到空行就分离出正文。
  • 但是http是基于tcp的协议,而tcp是流式套接字,那么如何区分正文多长呢?
  • 在请求报头中,如果有正文,那么就会有一个键值对Content—Length:size表示正文的长度。

http的响应(respond)格式:
respond
respond

http协议常用方法

http协议方法

  • GET和POST传参的不同:
  • GET方法通过url传参,POST方法通过正文传参。
  • GET方法不安全,POST方法也不安全。POST方法比GET方法更私密,但是不安全。
  • GET方法传参长度受限制,POST传参长度理论上不受限制。

http的状态码

状态码

cookie && session

cookie:

  • http是无状态的,不会记录用户的信息,但是http是给用户使用的,这会让用户很不爽。所以就有了cookie技术。
  • 你有没有发现,当你登录某个网站时,一段时间之内这个网站都“认识”你,这就是cookie。
  • cookie本质上是浏览器中的一个文件。
  • 当你第一次访问网站提交你的个人信息时,服务器获得信息,响应的时候会将你的信息以set-cookie:info的形式放在响应报头发给你的浏览器。
  • 而你的浏览器会将set-cookie的信息保存在一个cookie文件中,当你再次访问该网站,cookie文件会被默认添加到请求报头。
  • cookie文件也有内存级和硬盘级。内存级cookie就是你退出浏览器cookie文件就销毁。硬盘级就会保存很长一段时间。

cookie

  • 但是cookie面临一个很大的问题,如果你的电脑中毒,那么你的cookie文件一旦让窃取,就可能造成损失,所以为了安全性又有了session。

session:

  • 当你第一次给服务器发送数据时,服务器会创建一个session文件来保存你的个人信息,并产生一个服务器内唯一的sid来标识你,然后通过set-cookie:sid,将sid传回浏览器。
  • 浏览器创建cookie文件只需要保存sid即可。
  • 这样虽然不能完全杜绝cookie被窃取的风险,但是对方即使窃取你的cookie,拿到sid,也只是和你访问同样的资源罢了,无法修改你的信息。

session

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值