HTTP简单知识点总结

JAVA 46 2018-08-15 12:09

什么是HTTP协议?

HTTP协议是互联网上最普遍采用的一种协议,用于客户端和服务端通信,处于TCP/IP四层网络分层模型中的应用层。

HTTP是一个无状态的协议。
HTTPS是一个加密传输的协议。

HTTP传输的基本过程

在http传输的过程中,客户端向服务器发送一个请求文件。
最基本的过程是:
1 客户端连接一个主机;
2 服务器接收连接,
3 客户端请求一个文件,
4 服务器发送一个应答.

从输入URL到加载页面的过程都发生了什么?

1.读取缓存,如果缓存没过期则直接显示,否则需要再请求一遍。
2.解析DNS,将域名解析成对应的ip地址。
DNS域名解析过程
①(若开发过程中有手动添加)先查找本机的host文件。
②去运营商的DNS缓存中查找。
③如果还是找不到的话就会去根域名服务器中查找(比如域名是.com结尾的话,就会去.com的域名服务器中查找)。
3.建立TCP连接,三次握手。
4.发送HTTP请求。
5.WEB服务器(如Nginx)处理请求并返回。
6.加载页面。
7.关闭TCP连接(HTTP1.0默认开启长连接,若一次请求后,一段时间不用,会自动关闭掉连接,这样就可以减少TCP打开与关闭的次数)。

HTTP是无状态的协议

1.HTTP是一个不保存状态,即无状态的协议。
2.HTTP不对请求和响应的通信状态做持久化处理,如用户的登录状态,HTTP不会保存。
3.每次HTTP请求都是独立的。
4.跟TCP协议不同,TCP是保持状态的,发送了多少帧都有序列号和确认号等来保存传输状态。

为了解决HTTP无状态的问题,可以使用Cookie技术

1.Cookie是保存在客户端的数据,HTTP请求都会带上Cookie。
2.Cookie和Session的区别
①Cookie保存在客户端,Session保存在服务器端
②Session安全性更高(因为保存在服务器端的)
③保存的数据类型不同,Cookie只能保存字符串
④Cookie保存的数据大小有限制,而Session无限制
⑤Session对服务器性能的压力更大
⑥Session依赖于Cookie,Cookie中包含一个SessionId的标识,服务器通过SessionID来判断来自哪一个客户端。(如果禁用了Cookie,也可以采用url传参的方式)

HTTP存在的问题

1.HTTP通信使用的是未加密的明文,内容可能被窃听。
2.HTTP不会验证通信方的身份,因此可能遭遇伪装。
3.HTTP无法证明报文的完整性,因此可能遭到篡改。

可以使用HTTPS协议来解决。HTTPS就是在客户端与服务器端之间加了一条SSL安全通道,通过进行通信加密+安全证书进行安全性完整性保护。

HTTP1.1性能优化方法

1.合并css、js文件等,减少图片请求。
2.将css、js嵌入到页面。
3.使用持久连接。
4.图片单独放到cdn服务器。
5.使用多个子域名等等。

服务器主动推送消息

HTTP都是客户端主动发起请求,服务器进行响应的过程。那么想要做到服务器主动推送消息可以使用下列方式:
1.Ajax轮询,即客户端不断地去请求服务器。(例如打开微博放着不动时有新消息时就会自动刷新出来)
2.长连接。(连接后一直阻塞在那里,等待服务器响应)



微信公众号【IT资源社】
本公众号致力于免费分享全网最优秀的视频资源,学习资料,面试经验等,前端,PHP,JAVA,算法,Python,大数据等等,你想要的这都有,还会分享优质博文,提高你的认知与思维

IT资源社-QQ交流群:625494093
要进微信交流群的话加微信:super1319164238
微信搜索公众号:IT资源社 或者扫描下方二维码直接关注,

HTTP简单知识点总结-JEESNS

原创文章,转载请注明出处

文章评论

2 关注 / 24 粉丝

我无话可说

广告已过期