HTTP协议格式详解(总结)
认识url
url:就是我们平时说的“网址”
HTTP协议格式
HTTP:请求响应机制
HTTP底层协议:TCP 协议
TCP 的特点:面向连接,保证可靠性
面向连接:我要和对应的服务器进行通信,第一件事情就是要把连接建立好
一个简单的网络通信:
- 建立连接
- 发请求
- 响应请求并断开连接
应用层核心工作:
把数据通过 TCP 实现从A点到B点,但是从A——>B只是最基础阶段,它后续要对HTTP请求做出响应。
HTTP 用 TCP要实现的两个基本功能:
- 发数据;
- 收数据。
HTTP 不关心其他的细节问题。
HTTP的任务:
- 请求资源(从对方服务器将资源拿到)——更简单;
- 提交信息(处理数据),从客户端把数据推送到服务器。
HTTP请求:
请求报头每一行的格式:
Name:[空格]内容(一行就是一个属性,这里的“行”是以换行符作为标准)
Header 解析:
- 请求行:
[请求方法] [url] [版本] (空格分开)
- Host :请求的资源在哪个主机的端口上
- Connection:该请求支持长连接(heep_alive)
- Content-Length:正文内容长度
- Content-Type:数据类型
- User-Agent:声明用户的操作系统和浏览器版本信息
- Accent:发起了请求
- Referer:当前页面是从哪个页面跳转过来的
- Accept-Encoding:接受的编码
- Accept-Language:接受的语言类型
- Cookie:用于在客户端存储少量信息,通常用于实现会话(session)功能
详解 Connection:
HTTP 是应用层协议,HTTP 用的是下层的 TCP协议,而 TCP 是保证可靠性的。
TCP 为了保证可靠性,所以 TCP 是面向连接的。
TCP 面向连接之前必须先建立连接——> HTTP 向通信就要在底层先把连接建立好。
然后,发送方根据已经建立好的连接向服务器发送一个请求。
发过去之后对方就可以根据这个完整地读出来,对方再分析这个报文,然后对这个报文做出响应,HTTP 请求结束,之后断开连接。
这种一来一回的形式成为短连接(一次请求一个)
读请求:按行读取
什么时候读完报头?:读到空行
有效载荷:正文
报头和有效载荷分离:空行
紧挨着的几个请求如何分开:那么读一个请求时,在读取正文部分就要精确正文要读取多少,需要严格控制,所以报头中有一个属性——>Content-Length(正文的长度)
HTTP响应:
Header 解析:
- 状态行:
[版本号] [状态码] [状态码解释] (空格分开)
HTTP 方法
- GET:获取资源
- POST:传输实体主体
- PUT:传输文件
- HEAD:获得报文首部(相当于GET方法获得的资源去掉正文)
- DELETE:删除文件
- OPTIONS:询问支持的方法(客户端问服务器)
- TRACE:追踪路径
- OCONNECT:要求用隧道协议连接代理
- LINK:建立与资源之间的联系
- UNLINE:断开连接关系
GET 方法和 POST 方法核心点:
- 传参的数据量不一样,一个通过 url,一个通过正文,所以 POST 能传更多的数据;
- GET 方法和 POST 方法传参位置上,可靠性问题。
HTTP 状态码
状态码 | 类别 | 原因短语 |
---|---|---|
1XX | Informational (信息性状态码) | 接收的请求正在处理 |
2XX | Success (成功状态码) | 请求正常处理完毕 |
3XX | Redirection (重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error (客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error (服务器错误状态码) | 服务器处理请求出错 |
HTTP 总结
HTTP 如何做到将报头和有效载荷分开?
特殊符号:空行
HTTP 有没有向上交付?
理论上 HTTP 不需要向上交付,但是上一层还有用户,需要将正文、请求方法和属性等交给用户。
HTTP协议格式详解(总结)相关推荐
- HTTP响应协议格式详解
文章目录 响应协议格式 1. 首行 状态码详解 2. 响应头header 响应协议格式 HTTP请求协议由首行.响应头(header).空行.正文(body)组成.通过空行来区别header和body ...
- UDP数据包协议格式详解
源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号 报文长度(单位4byte):表示udp报头+udp数据总长度,有别于tcp,也没有选项 UDP报 ...
- COAP数据包协议格式详解
Ver:版本编号,占2bit,固定01 T:报文类型,占2bit,CON=00,NON=01,ACK=10,RST=11 CON--需要被确认的请求,如果CON请求被发送,那么对方必须做出响应. NO ...
- TCP数据包协议格式详解
出一个专栏把通信协议搞一下吧,万物互联的根本呀. IP 版本4位:4(二进制0100)表示IPv4,6(二进制0110)表示IPv6 报头长度(单位4byte):因为选项长度不确定,取值范围是5-15 ...
- 4-4:TCP协议之TCP头部格式详解
文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...
- Memcache的使用和协议分析详解
Memcache的使用和协议分析详解 作者:heiyeluren 博客:http://blog.csdn.net/heiyeshuwu 时间:2006-11-12 关键字:PHP Memcache L ...
- Gerber 格式详解
Gerber 格式详解 gerber中文 gerber,gerber 文件:590m.com/f/25127180-487459253-79168e(访问密码:551685) 以下内容无关: ---- ...
- 小猫爪:嵌入式小知识10-I2S,TDM,PCM等音频格式详解
小猫爪:嵌入式小知识10-I2S,TDM,PCM等音频格式详解 1 前言 2 I2S 3 Codec模式(左/右对齐) 3.1 左对齐(MSB对齐) 3.2 右对齐(LSB对齐) 4 DSP模式 5 ...
- Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...
- 思科SP CCNP组播侦听者协议MLD详解想要成为高级网络工程师必看-ielab
思科SP CCNP组播侦听者协议MLD详解想要成为高级网络工程师必看-ielab,网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段.网桥的两个端口分别有一条独立的交换信道,不是共享一条 ...
最新文章
- Linux笔记1- 6 --文件
- 通过tomcat实现多域名配置
- oracle 启动实例配置,centOS 7配置单实例oracle自启动
- Docker与容器化-04-Docker私有仓库与镜像迁移备份
- 数据结构之红黑树简介
- ssh工作流程及原理
- 班长倾情录音【送给LAMP兄弟连每一个人】
- EMI电磁干扰的来源和分类
- 养老---任重而道远
- android 置灰不可点击,Android全局实现控件变灰
- 图着色问题(超详细!!!)
- 什么是软件测试中的人工智能(AI)?
- CSP2020-S1游记
- 图片免费转pdf图片、图片免费转成word、图片免费转excel表格
- 理光Ricoh Aficio MP 2014 一体机驱动
- 计算机网络安全之网络嗅探器
- Web发布cab文件打包的ActiveX控件总结
- pylon保存图片_pylon界面中文说明-德国basler工业相机
- 【Pytorch】取反操作符~在Pytorch和python中使用的比较
- python四瓣花图形_python绘制樱花,彩虹旋等