认识url

url:就是我们平时说的“网址”

HTTP协议格式

HTTP:请求响应机制
HTTP底层协议:TCP 协议
TCP 的特点:面向连接,保证可靠性
面向连接:我要和对应的服务器进行通信,第一件事情就是要把连接建立好

一个简单的网络通信:

  1. 建立连接
  2. 发请求
  3. 响应请求并断开连接

应用层核心工作:
把数据通过 TCP 实现从A点到B点,但是从A——>B只是最基础阶段,它后续要对HTTP请求做出响应。

HTTP 用 TCP要实现的两个基本功能:

  1. 发数据;
  2. 收数据。

HTTP 不关心其他的细节问题。

HTTP的任务:

  1. 请求资源(从对方服务器将资源拿到)——更简单;
  2. 提交信息(处理数据),从客户端把数据推送到服务器。

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 方法

  1. GET:获取资源
  2. POST:传输实体主体
  3. PUT:传输文件
  4. HEAD:获得报文首部(相当于GET方法获得的资源去掉正文)
  5. DELETE:删除文件
  6. OPTIONS:询问支持的方法(客户端问服务器)
  7. TRACE:追踪路径
  8. OCONNECT:要求用隧道协议连接代理
  9. LINK:建立与资源之间的联系
  10. UNLINE:断开连接关系

GET 方法和 POST 方法核心点:

  1. 传参的数据量不一样,一个通过 url,一个通过正文,所以 POST 能传更多的数据;
  2. GET 方法和 POST 方法传参位置上,可靠性问题。

HTTP 状态码

状态码 类别 原因短语
1XX Informational (信息性状态码) 接收的请求正在处理
2XX Success (成功状态码) 请求正常处理完毕
3XX Redirection (重定向状态码) 需要进行附加操作以完成请求
4XX Client Error (客户端错误状态码) 服务器无法处理请求
5XX Server Error (服务器错误状态码) 服务器处理请求出错

HTTP 总结

HTTP 如何做到将报头和有效载荷分开?
特殊符号:空行

HTTP 有没有向上交付?
理论上 HTTP 不需要向上交付,但是上一层还有用户,需要将正文、请求方法和属性等交给用户。

HTTP协议格式详解(总结)相关推荐

  1. HTTP响应协议格式详解

    文章目录 响应协议格式 1. 首行 状态码详解 2. 响应头header 响应协议格式 HTTP请求协议由首行.响应头(header).空行.正文(body)组成.通过空行来区别header和body ...

  2. UDP数据包协议格式详解

    源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号 报文长度(单位4byte):表示udp报头+udp数据总长度,有别于tcp,也没有选项 UDP报 ...

  3. COAP数据包协议格式详解

    Ver:版本编号,占2bit,固定01 T:报文类型,占2bit,CON=00,NON=01,ACK=10,RST=11 CON--需要被确认的请求,如果CON请求被发送,那么对方必须做出响应. NO ...

  4. TCP数据包协议格式详解

    出一个专栏把通信协议搞一下吧,万物互联的根本呀. IP 版本4位:4(二进制0100)表示IPv4,6(二进制0110)表示IPv6 报头长度(单位4byte):因为选项长度不确定,取值范围是5-15 ...

  5. 4-4:TCP协议之TCP头部格式详解

    文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...

  6. Memcache的使用和协议分析详解

    Memcache的使用和协议分析详解 作者:heiyeluren 博客:http://blog.csdn.net/heiyeshuwu 时间:2006-11-12 关键字:PHP Memcache L ...

  7. Gerber 格式详解

    Gerber 格式详解 gerber中文 gerber,gerber 文件:590m.com/f/25127180-487459253-79168e(访问密码:551685) 以下内容无关: ---- ...

  8. 小猫爪:嵌入式小知识10-I2S,TDM,PCM等音频格式详解

    小猫爪:嵌入式小知识10-I2S,TDM,PCM等音频格式详解 1 前言 2 I2S 3 Codec模式(左/右对齐) 3.1 左对齐(MSB对齐) 3.2 右对齐(LSB对齐) 4 DSP模式 5 ...

  9. Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解

    http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...

  10. 思科SP CCNP组播侦听者协议MLD详解想要成为高级网络工程师必看-ielab

    思科SP CCNP组播侦听者协议MLD详解想要成为高级网络工程师必看-ielab,网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段.网桥的两个端口分别有一条独立的交换信道,不是共享一条 ...

最新文章

  1. Linux笔记1- 6 --文件
  2. 通过tomcat实现多域名配置
  3. oracle 启动实例配置,centOS 7配置单实例oracle自启动
  4. Docker与容器化-04-Docker私有仓库与镜像迁移备份
  5. 数据结构之红黑树简介
  6. ssh工作流程及原理
  7. 班长倾情录音【送给LAMP兄弟连每一个人】
  8. EMI电磁干扰的来源和分类
  9. 养老---任重而道远
  10. android 置灰不可点击,Android全局实现控件变灰
  11. 图着色问题(超详细!!!)
  12. 什么是软件测试中的人工智能(AI)?
  13. CSP2020-S1游记
  14. 图片免费转pdf图片、图片免费转成word、图片免费转excel表格
  15. 理光Ricoh Aficio MP 2014 一体机驱动
  16. 计算机网络安全之网络嗅探器
  17. Web发布cab文件打包的ActiveX控件总结
  18. pylon保存图片_pylon界面中文说明-德国basler工业相机
  19. 【Pytorch】取反操作符~在Pytorch和python中使用的比较
  20. python四瓣花图形_python绘制樱花,彩虹旋等

热门文章

  1. c语言笔试面试大全,C语言基础笔试题
  2. 安卓电子书格式_求把 EPUB 转换成 MOBI 的电子书格式转换工具
  3. 戒烟、写作、赚美金:我的2020
  4. Solidity学习教程
  5. 常见的HTTP状态码大全
  6. 神经网络在科研中的应用,基于神经网络的论文
  7. MyBatis是什么?使用它作为持久层框架有什么优点?
  8. graphpad折线图教程_GraphPad Prism 8.0绘制误差连线并填充颜色图
  9. 面试官到底想看什么样的简历?
  10. cor软件免费下载_CDRX4软件免费版