[网络原理] HTTP协议

这篇具有很好参考价值的文章主要介绍了[网络原理] HTTP协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要珍惜时间呀



1. HTTP协议概念

HTTP协议是应用层协议,TCP/IP协议为传输层协议,负责传输数据.而HTTP协议相当于对传输的数据据怎样处理和使用进行说明.
每次,我们访问网站的时候,都会给网站的服务器发送一个HTTP请求,服务器收到请求后,会返回一个HTTP响应.如下图所示.
[网络原理] HTTP协议

2. HTTP协议格式

下图,为一个HTTP请求的格式.
首行,为一个 GET方法+URL+版本号.
之后,为Header,是几组由冒号分隔的键值对.每一组通过’\n’区分.
Header之后会有一个空行,代表Header部分结束,之后为body部分,这里是GET方法,body部分为空.
[网络原理] HTTP协议

下图是HTTP响应格式,首行为版本号+状态码+状态码解释
之后为Header
空行之后为body.
[网络原理] HTTP协议

2.URL

URL也就是我们认识的网址,为统一资源定位符.
[网络原理] HTTP协议
https://editor.csdn.net/md?articleId=130078962
这是正常情况下的一个网址,我们可以看以下各个部分,有些东西被省略了.

  1. https,为协议方案名,常用的有http,https
  2. user.pass,现在网站身份信息不通过URL了,可以省略.
  3. editor.csdn.net,为服务器域名地址,可通过DNS解析成具体地址.
  4. 服务器端口号,当服务器端口号被省略时,浏览器可根据协议类型,自动决定端口号.例如http默认端口号为80,https默认端口号为443
  5. /md,为一个带层次的文件路径.
  6. articleId=130078962,为querystring,一个查询字符串,本质上是一个键值对结构,用&分隔.
  7. 片段标识符,这里省略了片段标识符,片段标识符主要用于页内跳转.

3. GET与POST方法

3.1 GET方法

GET方法大多用于获取资源
直接输入网址,浏览器就会发送一个GET请求.另外,使用JavaScript中的ajax也能构造GET请求.
如下图,是浏览器向CSDN服务器发送的GET请求.

GET https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js?1682498704940 HTTP/1.1
Host: csdnimg.cn
Connection: keep-alive
sec-ch-ua: "Not-A.Brand";v="24", "Chromium";v="14"
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36
sec-ch-ua-platform: "Windows"
Accept: */*
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: https://editor.csdn.net/md?articleId=130078962
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9


GRT请求的特点

  1. 首行,第一部分为GET
  2. body部分为空
  3. querystring可以为空,也可不为空
  4. Header部分有若干键值对结构.

3.2 POST方法

POST方法大多用于用户向服务器提交数据
可通过HTML中的form表单或者JavaScript中的ajax构造POST请求.
POST请求的特点

如下图

POST https://bizapi.csdn.net/blog-console-api/v3/mdeditor/saveArticle HTTP/1.1
Host: bizapi.csdn.net
Connection: keep-alive
Content-Length: 9865
sec-ch-ua: "Not-A.Brand";v="24", "Chromium";v="14"
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Content-Type: application/json
Cookie: uuid_tt_dd=10_18817831390-1675480237489-521231; UserName=scsery; UserInfo=7e02a966ece7443dba337ad644b10826; UserToken=7e02a966ece7443dba337ad644b10826; UserNick=%E8%8F%A0%E8%90%9D%E7%8C%AByena; AU=432; UN=scsery; 

{"id":130078962,"title":"[网络原理] HTTP协议","markdowncontent":"\n> 要珍惜时间呀\n\n@

POST请求特点文章来源地址https://www.toymoban.com/news/detail-437394.html

  1. 首行第一部分为POST
  2. body部分一般不为空,body内的数据格式通过Header中的Content-Type指定,body中的数据长度通过Header中的Content-Length指定.
  3. querystring部分一般为空
  4. Header部分由一些键值对组成.

3.3 GET与POST的区别

  1. 语义不同,GET一般用于获取数据,POST一般用于提交数据.
  2. GET的body一般为空,数据通过querystring传递,而POST的querystring一般为空,数据通过body传送.
  3. GET可以被缓存,POST不能被缓存.
  4. GET的请求一般是幂等的,POST的请求一般是不幂等的.(请求多次.得到的结果一样,就是幂等.)

到了这里,关于[网络原理] HTTP协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【计算机网络】应用层——HTTP 协议(一)

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】 本专栏旨在分享学习计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌 HTTP协议全称超文本传输协议,通过浏览器和服务器进行数据交互,进行

    2024年01月23日
    浏览(52)
  • 「网络编程」应用层协议_ HTTP协议学习及深入理解

    「前言」文章内容大致是应用层协议的HTTP协议讲解。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 「枫叶先生有点文青病」「句子分享」 俗话说,开弓没有回头箭,唯有箭折、箭落、箭中靶子三种结果而已。 ——江晓英《苏东坡:最是人间真情味》

    2024年02月13日
    浏览(47)
  • 【Linux网络】网络应用层的 http 和 https协议

    在之前学习序列化和反序列化的时候,认识到主机之间传输结构数据的时候,最好是通过某种约定将结构数据序列化成一串字符串,接收方再通过反序列化将字符串转换成结构数据。以上说的这种约定,其实可以看成是用户层通信的一种协议,是由程序猿自己定的。   实际

    2024年02月02日
    浏览(64)
  • 【网络原理】应用层协议 与 传输层协议

    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 我们自己写的应用程序就是在应用层 虽然应用层里面有一些现成的协议,但是在实际工作中也会存在 自定义应用层协议 (发明协议? 协议就是约定,约定好客户端和服务器按照啥样的格式来传输数据 ) 那么应用层协议如何

    2023年04月20日
    浏览(49)
  • 计算机网络 - 应用层http协议 - http报文格式介绍(1)

    本篇认识和理解应用层中的http协议,了解抓包工具并进行使用,认识请求报文与响应报文,了解报文中基本键值对意思例如:Set-Cookie, 状态码等,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 ① 根据输入的url,在域名系统DNS中进行解析获取对应的服务

    2024年02月12日
    浏览(58)
  • 【网络原理】| 应用层协议与传输层协议 (UDP)

    🎗️ 主页:小夜时雨 🎗️ 专栏:javaEE初阶 🎗️ 乾坤未定,你我皆黑马 应用层是和代码直接相关的一层,决定了数据要传输什么,怎么去使用这些数据等问题。 应用层这里,虽然存在一些现有的协议(比如HTTP),但是也有很多的情况,需要我们去自定义一些协议,这里的自

    2024年02月06日
    浏览(50)
  • 计算机网络:应用层(二) Web与http协议

    我最近开了几个专栏,诚信互三! ==== ||| 《算法专栏》::刷题教程来自网站《代码随想录》。||| ==== ||| 《C++专栏》::记录我学习C++的经历,看完你一定会有收获。||| ==== ||| 《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。||| ==== ||| 《C#专栏》::记录我复

    2024年02月03日
    浏览(51)
  • 学习网络编程No.8【应用层协议之HTTP】

    北京时间:2023/10/9/13:03,一晃好多天过去了,9月14号的文章终于在昨天发出去了,也是许久没有更文了,国庆放假期间由于各种原因,在王者峡谷和铲子世界遨游的不亦乐乎,有待改善!目前面临挑战艰巨,问题很多,在这个空窗期我们需要有一股强大的支撑作为动力,毕竟

    2024年02月08日
    浏览(48)
  • 【网络原理】数据链路层 和 应用层 重点协议

    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 以太网就是平时我们插网线的协议,平时插的网线也叫做 “以太网线” 以太网帧格式: 这里的 目的地址 源地址 是 mac 地址(物理地址)不是 IP 地址 6 个字节的 mac 地址要比 IP 地址多很多!42亿9千万 * 65535,mac 地址还可以做

    2024年02月07日
    浏览(50)
  • 「网络编程」应用层协议_ HTTPS协议学习及原理理解

    「前言」文章内容大致是应用层协议的HTTPS协议讲解,续上篇HTTP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) HTTPS(HyperText Transfer Protocol Secure) 是一种通过加密和身份验证保护网络通信安全的协议。它是基于HTTP协议的安全版本,也是工作在应用

    2024年02月16日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包