一、socket(套接字)
1. socket是通信的基石,是支持TCP/IP网络通信协议的基本操作单元。包含了网络通信必须的五种信息:
连接使用协议,本地IP地址,本地协议端口,远程IP地址,远程协议端口。
2. socket连接:至少一对socket,客户端ClientSocket和ServerSocket
a. ServerSocket 处于监听状态,监听来自客户端的请求
b. ClientSocket 发送套接字(描述的是服务端的套接字信息)请求至服务端
c. 服务端接收对应的套接字后建立连接
3. 创建socket连接时可以指定不同的传输层协议(TCP/UDP),指定TCP协议时,该socket连接就是一个TCP连接。
二、TCP/IP协议
1. TCP/IP协议 是一系列网络通信协议的总和,它定义了电子设备如何连入因特网,以及数据如何在他们之间进行传输(传输层 协议)。有4层结构,应用层、传输层、网络层和链路层,每层 都有自己的要完成的事,简单来说就是一台主机上的数据要经过哪些过程才能到达对方主机上。
TCP/IP协议框架
三、http协议
1. HTTP协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,基于TCP/IP通信协议来传输数据(应用层协议)。
2. 规定了浏览器与服务器(www)互相之间的通信规则(定义传输数据内容的规范),用于从服务器传输超文本到本地浏览器的传送协议。
由此:Socket + 指定协议TCP ---------->> TCP连接 + 数据内容规范 ------------>> http 连接
无状态协议:HTTP/1.1之前一次请求一次连接,连接之间没有任何关系;1.1版本之后默认开启Connection:keep-alive,多次访问都是一个连接,有保持时间,可在服务器软件中设定保持时间。
连接:3次握手,断开:4次挥手;
四、 http请求与响应
1. http使用统一资源标识符URL来建立连接和传输数据
request
2. 请求方法get与post(本质没有区别,都是基于TCP/IP数据传输协议,只是浏览器厂家加的限制使他们之间产生了区别)
get:
a. 用于获取资源
b. 参数暴露在URL中,有长度限制,最大1k(1024字节),不安全
c. 没有请求体
post:
a. 发送数据给服务器,可能存在对服务器数据改动
b. 发送数据大小没有限制
c. 请求数据在请求体中,相对安全
3. response