计算机网络重点知识解析(2)

计算机网络重点知识的总结,接上一篇文章。

HTTP协议

http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
http有许多版本,用的最多的是http1.1,下文中探讨的也是多以1.1为标准。

HTTP协议简介

简单介绍一下HTTP协议的特点:
1丶支持客户服务器模式。
2丶简单快速。
3丶灵活,支持多种数据类型。
4丶无连接,无连接的含义是限制每次连接只处理一个请求,处理完后断开连接,1.1后默认使用长连接,服务器一段时间后断开连接,保证连接特性。
5丶无状态,协议对于事务处理没有记忆能力,后面数据如果需要前面信息,必须重传

先来看下http的请求结构和响应结构:
计算机网络重点知识解析(2)
计算机网络重点知识解析(2)

打开谷歌浏览器,打开百度首页,在浏览器中f12,在network中找到对应链接,就可以清楚的看到相关的http协议内容:
计算机网络重点知识解析(2)
这里有一个博客说的挺清楚,大家可以对比参考下,
链接: https://www.cnblogs.com/handsomeBoys/p/4859162.html

HTTP请求响应的步骤

了解了http协议的基本内容,来看下一次http协议的请求到响应的过程:
计算机网络重点知识解析(2)
有一道比较常见的题目,可以看下:
计算机网络重点知识解析(2)
先是dns解析,通过域名获得ip地址,通过ip地址,建立tcp连接,tcp连接建立后,客户端向服务器发送http请求,服务器收到后处理请求并返回http报文,浏览器,即客户端,解析并渲染页面,最后连接结束。

HTTP常见状态码

了解下http常见的状态码。
计算机网络重点知识解析(2)
一般来说
1开头的状态码表示请求已接收,继续处理;2开头的一般表示成功;3开头的一般代表重定向;4开头的代表客户端错误;5开头的表示服务器错误。

GET请求和POST请求

我们再来了解下两种http请求的方式,GET请求和POST请求。
从HTTP报文层面来看,GET请求一般将请求信息,例如请求参数,放在URL上,而POST请求一般放在报文体中,相对来说POST请求更加安全。
从数据层面来看,GET请求一般用于对数据的查询,不改变数据库,符合幂等性和安全性,POST则不符合。
另外,GET请求可以被缓存,被存储,POST请求则不行。

Cookie和Session

Cookie和Session在开发中也是十分常见的。
计算机网络重点知识解析(2)
计算机网络重点知识解析(2)
一般来说,服务器有两种方式得到客户端的session信息,一种是使用cookie实现,也是比较常见的方式,jsessionid保存在cookie中,服务器解析到jsessionid,找到客户端对应session。第二种是url回写,让所有的url都带有jsessionid 参数。
我们熟悉的tomcat服务器优先使用cookie,cookie被禁用则使用url回写。
计算机网络重点知识解析(2)

HTTPS协议

除了http协议,现在htps协议也越来越被广泛应用。
HTTPS协议是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
简单来说,HTTPS 是 HTTP 的安全版,是使用 SSL/TLS 加密的 HTTP 协议。通过 TLS/SSL 协议的的身份验证、信息加密和完整性校验的功能,从而避免信息窃听、信息篡改和信息劫持的风险。
计算机网络重点知识解析(2)
简单来说,https协议即是http协议加上了一层ssl层,来保证信息的安全传输。
再来看下https协议和http协议的区别,如下图:
计算机网络重点知识解析(2)

Socket 简介

最后,我们再来了解下socket
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口 。
一般通过ip和端口号,来唯一标识一个Socket端口。
计算机网络重点知识解析(2)
Socket的通信流程:
计算机网络重点知识解析(2)

总结

到此,计算机网络就基本总结完了,这块知识点比较复杂繁琐,确是编程开发中不可缺少的基础。希望大家可以多花时间学习巩固。