TCP/IP协议
目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也称TCP/IP协议族、或TCP/IP协议栈。
TCP:Transmission Control Protocol 传输控制协议
IP:Internet Protocol 互联网协议
应用层协议
协议 + IP + 端口号
http://127.0.0.1:8080
ftp://127.0.0.1
![](https://img.haomeiwen.com/i565/cb4f0e995d3190a9.png)
常见协议的端口:
- HTTP 80
- HTTPS 443
- FTP 21
- SSH 22
- Telnet 23
- SMTP 25
HTTP协议
一个HTTP请求包括以下内容:
请求行(request line)、请求头部(header)、空行和请求数据。
![](https://img.haomeiwen.com/i565/5fb8d8d591dd99f1.png)
HTTP协议的常见字段
- Method 请求方法
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
-
Status Code 状态码
- 200/302/404/502
-
Content-Type
- text/html
- text/json
- audio/mp3
- image/png
- application/x-www-form-urlencoded
- application/multipart-form
-
Content-Length
-
Connection:Keep-Alive
-
User-Agent(浏览器、操作系统信息)
HTTP长连接、短连接
HTTP 1.0 默认短连接,HTTP 1.1默认长连接(Keep-Alive)
Socket编程
创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
![](https://img.haomeiwen.com/i565/b4acdb51c53732fe.png)
TCP、UDP
TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低。
UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快
进行数据传输时,首先将要传输的数据定义成数据报(Datagram),大小限制在64k,在数据报中指明数据索要达到的Socket(主机地址和端口号),然后再将数据报发送出去
网友评论