计算机网络 - 应用层http协议 - http报文格式介绍(1)

这篇具有很好参考价值的文章主要介绍了计算机网络 - 应用层http协议 - http报文格式介绍(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本篇认识和理解应用层中的http协议,了解抓包工具并进行使用,认识请求报文与响应报文,了解报文中基本键值对意思例如:Set-Cookie, 状态码等,如有错误,请在评论区指正,让我们一起交流,共同进步!



本文开始

1. http请求与响应过程 - 浏览器访问服务器的一个通信过程

① 根据输入的url,在域名系统DNS中进行解析获取对应的服务器IP地址
② 找到服务器后,进行TCP三次握手建立连接
③ 建立连接后,发送http请求
④ 服务器根据请求,进行响应,浏览器获取了html代码
⑤ 浏览器根据响应进行解析,渲染浏览器页面
⑥ 服务器TCP四次挥手,断开连接

2. 了解http协议 - 应用层

2.1 什么是http协议?

http协议是一个超文本协议,所谓超文本就是传输的不只是文本,还包括html, css, 图片等;在应用层中使用广泛用于,给传输数据规定格式;

2.2 http协议如何与服务器交互?

以 “一问一答” 的形式,浏览器相当于客户端,一般是浏览器主动发起请求,服务器返回一个响应;

3. 认识http协议的报文格式

3.1 如何认识http协议的报文格式?

使用抓包工具:http协议的报文格式不像tcp,udp 那样有固定的报文格式,而http协议的报文格式需要通过抓包工具实现;

抓包工具:能够看到协议格式的详细情况,一般chrome有内置的z抓包工具,这里使用 fiddler 这个工具;(直接在官网上下载 fiddler,s首次使用安装根证书)

3.2 fiddler使用介绍

左侧是抓包的数据,右侧上部分是请求,右侧下部分是响应;
请求或响应在右侧点击 Raw 查看具体的报文格式;

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

3.3 认识请求和响应

1)请求报文格式 - 4部分

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

i) 首行 包含:方法 URL 版本号

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

【注】

  • 请求可以是get, 也可以是post,二者可以相互替换;
    http方法:常用post:从服务器获取资源, get:往服务器提交数据等等;
    post请求的出现:一般登录出现,上传文件时出现;

了解URL

URL:唯一资源定位符;(找到网络上唯一的一个资源)

URL基本组成如图:
URL:协议名称://ip:端口号/带层次的路径?查询字符串

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

【注】
1)域名后还有一个默认端口号,可以省略;例 : http 默认端口:80,https默认端口:443;
2)查询字符串:键值之间使用 = 分隔,键值对之间使用 & 分隔;=》对请求的资源细节补充说明;

ii) 请求头header : 键值对结构,每个键值对占一行;键和值之间使用 冒号+空格分隔;
Host: 描述浏览器这个请求访问的服务器是什么;
如下图:

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

【注】一般情况下URL中的域名与Host中的值一致,但也有可能不一致;

Content-Type : 描述body中的数据格式;
请求的Content-Type:
使用json格式:Content-Type:application/json;charset=UTF-8
使用form表单格式(body的数据类型是查询字符串):Content-Type:application/x-www-form-urlencoded
响应的 Content-Type: 数据类型比较多,是页面可显示
Content-Type: text/html
Content-Type: text/css
Content-Type: application/javascript

Content-Length:描述 body的长度;

User-Agent: 主要描述浏览器的版本,系统的版本;
UA区分浏览器的不同,区分用户的硬件设备手机/平板等

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

⑤ Referer: 描述当前页面是由哪个页面跳转而来
如图:由cn.bing.com跳转而来;

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

Cookie:

Cookie : 浏览器在本地存储用户自定义数据的一种关键机制;
Cookie数据格式:键值对,键值对之间 ; 分隔,键和值之间 = 分隔;

1.获取Cookie的地方:从浏览器获取,浏览器访问服务器的,服务器会在HTTP响应中,通过 Set-Cookie 字段,把Cookie的键值对,返回给浏览器;浏览器得到响应中的Cookie会本地存储;
2.Cookie去的地方:在浏览器下次请求时,把Cookie带给服务器;
【注】Cookie在浏览器是暂存,真正使用是在服务器中;
3.Cookie的作用:浏览器本地存储的机制;Cookie典型应用是存储用户的身份信息,服务器通过Cookie字段进行身份识别,把响应返回给对应浏览器客户端;
【注】Cookie中存储的数据都得是字符串;


2) 响应报文格式 - 4部分

计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

i)首行包含:版本号 状态码 状态码描述
状态码 数字:状态码通过一个或一组单纯,描述状态码的含义;数字表示请求执行成功还是失败;

状态码

常见的状态码:
① 200 OK :表示请求成功
② 404 Not Fount : 表示要访问的资源不存在
③ 403 Forbidden : 访问被拒绝 / 访问没有权限
④ 500 Internal Server Error :服务器内部错误
⑤ 504 Gateway Timeout : 服务器访问超时
⑥ 302 Move temporarily : 临时重定向
⑦ 301 Moved Permanently 永久重定向
【注】重定向:访问旧的地址,被自动引导到新的地址上;

状态码分类计算机网络 - 应用层http协议 - http报文格式介绍(1),计算机网络,计算机网络,http,网络协议,java,后端

ii)响应报头 - 与请求报头中的类似

3.4 get 与 post 有区别?

get与post本质没有区别,二者可以相互替换,但在使用习惯上post 与 get 是不同的;
get 与 post 使用习惯上的区别:
1)习惯 get 用于表示 “获取的一个数据”, post 用于表示 ”提交一个数据“
2)get 一般没有body, 需要携带数据放在URL中, post一般有body
3)get 请求一般设计为幂等的,post无要求;
何为幂等:
幂等:输入一定,输出一定,每次输入与上一次输入一样,输出也与上一次一样;
【注】输入 != 输出
4)get在幂等条件下可缓存,post 不能;
【注】缓存:将已经计算过的数据放入客户端或者服务器,当下次再次遇到一样的请求时,直接使用已保存的值;
5)get 请求可以被浏览器收藏,post不能;


总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!
文章来源地址https://www.toymoban.com/news/detail-524722.html

到了这里,关于计算机网络 - 应用层http协议 - http报文格式介绍(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络中的应用层和传输层(http/tcp)

    目录 1、协议的通俗理解 1.1 理解协议 2.应用层 2.1 http协议 2.2 HTTP的方法  2.3 HTTP的状态码 2.4 HTTP常见Header 3、传输层 3.1 端口号 3.1.1 端口号范围划分 3.1.2 netstat 3.1.3 认识知名端口号(Well-Know Port Number) 3.2 UDP协议 3.2.1 UDP协议端格式 3.2.2 UDP的特点 3.2.3 基于UDP的应用层协议 3.3 TCP协

    2024年02月08日
    浏览(31)
  • 计算机网络 应用层上 | 域名解析系统DNS 文件传输协议FTP,NFS 万维网URL HTTP HTML

    之前我们讲运输层的时候已经讲了运输层可以给不同进程之间通信,但我们还需要应用层原因是,许多 应用需要多个进程之间相互配合完成,所以应用层进程用来约束这些配合! 每个应用层协议用来解决一个问题 应用层的许多协议都是基于客户服务器方式 客户是请求方,服

    2024年01月24日
    浏览(47)
  • 计算机网络——应用层

    这篇文章是计算机网络系列文章的第五篇 计算机网络——物理层 计算机网络——数据链路层 计算机网络——网络层 计算机网络——传输层 计算机网络——应用层 计算机网络中的应用层在当今的社会起到了什么作用? 应用层在当今社会有着必不可缺的作用。是协议栈中的最

    2024年02月16日
    浏览(43)
  • 【计算机网络】应用层

    客户-服务器体系结构: 特点:客户之间不能直接通信;服务器具有周知的,固定的地址,该地址称为IP地址。 配备大量主机的数据中心常被用于创建强大的虚拟服务器; P2P体系结构: 特点:对位于数据中心的专用服务器有最小(或者没有)依赖 P2P最引人入胜的特征之一是

    2024年02月06日
    浏览(39)
  • 计算机网络-应用层

    对应用程序的通信提供服务:文件传输、访管FTP、电子邮件SMTP、虚拟终端HTTP 应用层协议定义了报文类型、语法、语义、发送/响应报文的规则 减轻了服务器的计算压力,不需要完全依赖某个服务器,利用大量客户机减轻对服务器的压力 多个客户机直接共享文档 可拓展性好,

    2024年02月07日
    浏览(29)
  • 计算机网络————应用层

    应用层的具体内容就是规定应用进程在通信时所遵循的协议 应用层的许多协议都是基于客户服务器方式,客户是服务请求方,服务器是服务提供方 应用进程通信的方式: 1、客户/服务器(C/S, Client/Server)方式 应用层的许多协议是基于C/S方式,例如,在移动互联网环境下,每

    2024年02月12日
    浏览(30)
  • 计算机网络 应用层

    域名系统概述 域名系统 DNS (Domain Name System) 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地扯 互联网的域名系统 DNS 被设计成为一个联机分布式数据库系统,并采用客户服务器方式。 DNS 使大多数名字都在本地进行解析(resolve). 互联网的域名结构 采用层

    2024年01月17日
    浏览(45)
  • 计算机网络——应用层(3)

    我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在学

    2024年01月17日
    浏览(39)
  • 计算机网络-应用层(3)

            文件传输协议   ( File   Transfer   Protocol , FTP )   简称为“文传协   议”,用于在Internet上控制文件的 双向传输。   FTP   客户上传文   件时,通过服务器 20号 端口建立的连接是建立在 TCP   之上的 数   据连接 ,通过服务器 21号 端口建立的连接是建立在 TCP   之上

    2024年02月08日
    浏览(44)
  • 计算机网络网--应用层

    特点 网络核心中没有应用层软件 网络核心没有应用层功能 网络应用只在端系统上存在,快速网络应用开发和部署 在计算机网络中,进行通信的是 进程 而不是程序。不同端系统上,进程通过计算机网络交换 报文 而相互通信。 进程与计算机网络接口 进程通过称为 套接字 的

    2024年02月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包