计算机网络总结三HTTP与HTTPS

HTTP

(HyperText Transfer Protocol 超文本传输协议)是互联网上应用最为广泛的一种网络协议,它是由万维网协会(World Wide Web Consortium)制定发布。
在这里插入图片描述

一、简介

HTTP 协议一共有五大特点:
1.支持客户/服务器模式。( 这也叫特点??)
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。(超文本协议嘛)
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。(这是早期的1.0,现在不是了,现在网页东西那么多,处理完就断开肯定不合适)
5.无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息(Cookie和Session孕育而生)。

二 HTTP请求报文结构

在这里插入图片描述
空行是必须的

HTTP请求实例
在这里插入图片描述
上面的是POST,而GET请求是没有请求体(也叫请求正文)的。

三 HTTP响应报文

在这里插入图片描述
HTTP响应实例
在这里插入图片描述
Http请求方式Get和Post的区别

  1. GET一般用于获取或者查询资源信息,这就意味着它是幂等的(对同一个URL的多次请求返回同样的结果)和安全的(没有修改资源的状态)
  2. POST一般用于更新资源信息,既不是安全,也非幂等。

参数存放位置

  1. GET方法中,客户端把要发送的数据添加到URL后面(即把数据放到HTTP协议头中,GET是通过URL请求数据的),使用“?”连接,参数之间使用“&”连接。注意:HTTP协议中并没有对URL长度进行限制,但是浏览器和服务器会对其限制!(面试中经常会问到URL长度限制问题,一定要明白协议中并未对此规定!)
  2. POST是将需要传递的数据放到HTTP请求报文的消息体中(同样,协议未对此部分大小进行限制),不过传送的数据量比GET更大且安全性更高(若不对数据进行加密,可使用抓包软件进行获取)。

四连接

严格上说,HTTP没有连接,他的底层是TCP,所以此处的连接指的是TCP,他是请求/响应,所以就不存在长连接,短连接。

早在1999年HTTP1.1就推广普及,所以现在浏览器在请求时请求头中都会携带一个参数:Connection:keep-alive,这表示浏览器要求与服务器建立长连接,而服务器也可以设置是否愿意建立长连接,如果是close,表示已关闭。

1.长短连接
是否断开我们需要区分HTTP版本:
(1)在HTTP/1.0版本的时候,客户端与服务器完成一个请求/响应之后,会将之前建立的TCP连接断开,下次请求的时候又要重新建立TCP连接,这也被称为短连接
(2)在HTTP1.0发布仅半年后(1997年1月),HTTP/1.1版本发布并带来一个新的功能:
在客户端与服务器完成一次请求/响应之后,允许不断开TCP连接,这意味着下次请求就直接使用这个TCP连接而不再需要重新握手建立新连接,这也被称为长连接

2.长连接优缺点
对于服务器来说建立长连接有优点也有缺点:
优点:
当网站中有大量静态资源(图片、css、js等)就可以开启长连接,这也几张图片就可以通过一次TCP连接发送。
缺点:
当客户端请求一次时候不在请求,而服务器却开着长连接资源被占用着,这是严重浪费资源。
所以是否开启长连接,长连接时间都需要根据网站自身来合理设置。
ps:大家不要小看这一个TCP连接,在一次客户端HTTP完整的请求中(DNS寻址、建立TCP连接、请求、等待、解析网页、断开TCP连接)建立TCP连接占用的时间比还是很大的。

五cookie与session

cookie
因为HTTP协议“无状态”的特点,在请求完毕后会关闭连接,再次交换数据需要建立新的连接,无法跟踪会话。Cookie技术是客户端的解决方案,由服务器发送给客户端的特殊信息,存放在response的header中,这些信息以文本文件方式存放在客户端,由客户端每次向服务器发送请求时带上,此时是存放在request的header中。

在这里插入图片描述

在客户端向服务端请求时,若服务器要记录该用户信息,就发送一个携带cookie的response,客户端会保留此cookie,当客户端需要再次请求时,将请求URL和Cookie信息一同打包发送给服务端,此时服务器即可根据cookie辨认状态再做出响应(也可修改)。总而言之,Cookie就是用户识别标志,保存在客户端!

session
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器行。客户端浏览器访问的时候,服务器把客户端信息以某种形式记录在服务器上。

六 HTTPS = HTTP + 加密 + 认证 + 完整性保护

在了解HTTP特点之后,不可忽视的是它的不足之处,通信使用明文(不加密),内容可能被监听。所以推出了HTTPS,其实就是在TCP和HTTP之间加了一层SSL(TLS)协议,用来加密,解密。

参考

HTTP连接
HTTP与HTTPS

猜你喜欢

转载自blog.csdn.net/GreedySnaker/article/details/114885130