美文网首页
Day 44/100 HTTP/TCP三次握手及各版本特点

Day 44/100 HTTP/TCP三次握手及各版本特点

作者: 赵国星 | 来源:发表于2020-09-14 10:12 被阅读0次

写在前面的话

和家人在一起的幸福,感觉真的很不错,开心~

继续码字~

(一)HTTP和TCP的区别和联系

TCP是传输层,而http是应用层

http是要基于TCP连接基础上的:

TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。

http是用来收发数据,即实际应用上来的。

(二)TCP/IP

 “三次握手协议”:

      第一次:C发送一个请求连接的位码SYN和一个随机产生的序列号给Seq,然后S收到了这些数据。

      第二次:S收到了这个请求连接的位码,啊呀,有人向我发出请求了么,那我要不要接受他的请求,得实现确认一下,于是,发送了一个确认码 ACN(seq+1),和SYN,Seq给C,然后C收到了,这个是第二次连接。

      第三次:C收到了确认的码和之前发送的SYN一比较,偶哟,对上了么,于是他又发送了一个ACN(SEQ+1)给S,S收到以后就确定建立连接,至此,TCP连接建立完成。

      简单就是:请求,确认,连接。

TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。

(三)HTTP协议

  第一:发送一个http请求给S,这个请求包括请求头和请求内容:

request header:

      包括了,1.请求的方法是POST/GET,请求的URL,http协议版本2.请求的数据,和编码方式3是否有cookie和cooies,是否缓存等。

      post和get请求方式的区别是,get把请求内容放在URL后面,但是URL长度有限制。而post是以表单的形势,适合要输入密码之类的,因为不在URL中显示,所以比较安全。

request body:

即请求的内容.

      第二:S收到了http请求,然后根据请求头,返回http响应。

response header:包括了1.cookies或者sessions2.状态吗3.内容大小等

response body:

      即响应的内容,包括,JS什么的。

      第三,C收到了以后,就由浏览器完成一系列的渲染,包括执行JS脚本等。

(三)HTTP各个版本的不同

新版本的更新点

1、HTTP/1.0

增加了请求方式POST和HEAD;

Content-Type可以支持多种数据格式,即MIME多用途互联网邮件扩展,例如text/html、image/jpeg等;

同时也开始支持cache,就是当客户端在规定时间内访问统一网站,直接访问cache即可。

内容编码:content encoding

缺点:

每次TCP连接只能发送一个请求,当服务器响应后就会关闭这次连接,下一个请求需要再次建立TCP连接,就是不支持keepalive。

解决方案

Connection: keep-alive

2、HTTP/1.1(主流)

持久连接(persistent connection)

TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive

加入了管道机制,在同一个TCP连接里,允许多个请求同时发送,增加了并发性,进一步改善了HTTP协议的效率;

Content-Length 字段

Content-Length: 3495

分块传输编码

Transfer-Encoding: chunked

新增了请求方式PUT、PATCH、OPTIONS、DELETE等。

新增了Host字段

用来指定服务器的域名

3、HTTP/2.0

增加双工模式

不仅客户端能够同时发送多个请求,服务端也能同时处理多个请求,解决了队头堵塞的问题(HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级)

二进制协议

是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为"帧"(frame):头信息帧和数据帧。

多工

复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了"队头堵塞"。

头信息压缩

一方面,头信息使用gzip或compress压缩后再发送;另一方面,客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。

服务器推送

当我们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。

以上

参考链接

https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc

TCP详解:https://blog.csdn.net/sinat_36629696/article/details/80740678

论HTTP请求大小:https://www.cnblogs.com/yjf512/archive/2013/03/29/2988296.html

URI和URL的区别比较与理解:https://blog.csdn.net/qq_32595453/article/details/80563142

HTTP协议版本:https://blog.csdn.net/qq_22238021/article/details/81197157

相关文章

  • Day 44/100 HTTP/TCP三次握手及各版本特点

    写在前面的话 和家人在一起的幸福,感觉真的很不错,开心~继续码字~ (一)HTTP和TCP的区别和联系 TCP是传...

  • 记录面经

    cvte一面: 介绍自己 项目中使用了react,为什么选择用它 http和tcp(说了特点,tcp三次握手) 项...

  • 35.Android网络编程总结

    1.三次握手 2.TCP的特点

  • iOS 网络相关

    1、TCP/IP 及三次握手 2、socket编程 3、HTTP(图解HTTP) 从输入URL到页面加载发生了什么...

  • HTTP协议笔记

    HTTP协议 https的实现原理 TCP三次握手

  • TCP/IP协议

    TCP/IP协议三次握手与四次握手流程解析 HTTP协议—— 简单认识TCP/IP协议 TCP/IP协议入门(一)...

  • 了解Http基础

    网络分层模型: TCP/IP基础: TCP三次握手——> TCP四次挥手——> 一、HTTP1.0与HTTP 1....

  • TCP、HTTP、UDP、Socket协议

    TCP、HTTP、UDP、Socket协议 标签(空格分隔): Node.js [TOC] TCP 的三次握手 一...

  • 计算机网络知识目录

    · TCP/IP协议模型 TCP 三次握手四次挥手 四元组 · Http · Https

  • tcp三次握手四次挥手

    tcp三次握手四次挥手 TCP状态图 TCP状态时序图 tcp三次握手 流程图: TCP握手状态说明: TCP_S...

网友评论

      本文标题:Day 44/100 HTTP/TCP三次握手及各版本特点

      本文链接:https://www.haomeiwen.com/subject/nyumektx.html