嵌入式学习日记(34)HTTP协议
TCP的其他机制
TCP头部的标志位:
SYN:请求建立连接标志位
ACK:响应报文标志位
PSH:携带数据标志位,通知接收方该从缓冲区读数据
FIN: 请求断开连接标志位
RST:复位标志位
URG: 紧急数据标志位
机制:
安全可靠:
1. 三次握手和四次挥手机制
2. 应答机制:TCP对于每一包数据都会给出相应的应答。发送数据时序列号表示这包数据的起始编号,响应报文中的确认号是接收方收到的最后一个字节编号+1。
3. 超时重传机制:当数据发送出去等待指定时间没有收到响应,此时认为这包数据丢失则进行冲传。
4. 滑动窗口机制:一段缓冲区,缓存TCP已发送未收到响应,准备发送等数据
提高效率:
1. 延迟应答机制:发送数据的同时可以等待应答
2. 流量控制机制:结合TCP头部的窗口大小,动态调整发送速率。
3. 捎带应答机制:ACK报文可能和应用层的数据同时发送
1.万维网服务器后台如何标记万维网数据 url : 统一资源定位符
2. 万维网客户端与万维网服务器之前使用什么方式通信 HTTP:超文本传输协议
3. 万维网客户端如何展示请求的数据 HTML:超文本标记语言
HTTP:超文本传输协议
应用层协议
端口:80
备用端口:8080
基于传输层的TCP协议
HTTP请求报文:
GET / HTTP/1.1\r\n
Host: news.sohu.com\r\n
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\n
Accept-Language: en-US,en;q=0.5\r\n
Connection: keep-alive\r\n
\r\n
Connection: keep-alive ---->长连接:连接保持一定时间
Connection: close ------>短连接:连接立马断开
HTTP响应报文:
HTTP/1.1 200 OK\r\n
Date: Mon, 25 Aug 2025 06:14:56 GMT\r\n
Content-Type: text/html;charset=utf-8\r\n
Server: openresty\r\n
Vary: Accept-Encoding\r\n
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Trace-Id: 15e6e7862abd49fdb1c327a6dbeb200d.10490.17561024969448219
Data-Source:
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
S-REQ-ID: 17348448226369344247
S-REQ-TYPE: 0
X-Cache-Lookup: Cache Miss
Content-Encoding: gzip
Cache-Control: no-cache\r\n
Transfer-Encoding: chunked\r\n
X-NWS-LOG-UUID: 17348448226369344247\r\n
Connection: keep-alive\r\n
X-Cache-Lookup: Cache Miss\r\n
\r\n
<!DOCTYPE html><html><head><script>if(window&&window.performance&&typeof window.performance.now==='function'){!window.MptcfePerf?window.MptcfePerf={headst:+new Date()}:window.MptcfePerf.headst=+new Date()}</script><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta http-equiv=x-dns-prefetch-control content=on><meta name
HYYP通信流程
1. 请求建立TCP连接
2. 发送HTTP请求报文
3. 接收HTTP响应报文
4. 断开连接