HTTP协议:

  • HTTP的全称是:Hyper Text Transfer Protocol,意为超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则:问答机制、握手机制。
  • 它规范了请求和响应内容的类型和格式。
  • HTTP协议是由W3C组织管理和维护的。
  • HTTP协议是基于TCP协议的,是一个安全的协议
  • 超文本:比普通文本更加强大
  • 传输协议:客户端和用户端的通信规则(握手规则)
  • 除了用户端发起请求以外,JavaScript、CSS、图片资源会自动发起请求

HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:

HTTP协议版本:

  • 目前HTTP协议主要是1.0版本和1.1版本。这两个版本的区别主要是两个方面。
  • 第一:HTTP1.1版本比1.0版本多了一些消息头。
  • 第二:HTTP1.1版本和1.0版本的执行过程不一样。执行过程如下:
HTTP1.0 HTTP1.1
创建连接(TCP/IP) 创建连接(TCP/IP)
发送请求 发送请求1
得到响应 得到响应1
关闭连接 发送请求2
创建连接(TCP/IP) 得到响应2
发送请求
得到响应
关闭连接 连接超时或手动关闭连接

HTTP协议相关说明:

HTTP协议概念是客户浏览器和服务器一种一问一答的规则,那么必须要有问有答,而且要先问后答。
但是我们使用<script>,<link><img>标签,没有手动发起请求,但是仍然能从服务器端拿到数据,原因就是:在浏览器遇到<script>,<link>,<img>标签时会自动发出请求。

HTTP协议组成:

由HTTP协议的概念可知,它分为问和答两部分。其中问指的就是请求部分,而答指的就是响应部分。

请求部分:

请求行: 永远位于请求的第一行
请求消息头: 从第二行开始,到第一个空行结束
请求的正文: 从第一个空行后开始,到正文的结束

响应部分:

响应行: 永远位于响应的第一行
响应消息头: 从第二行开始,到第一个空行结束
响应的正文: 从第一个空行后开始,到正文的结束

消息头的共性分析:

消息头名称首字母大写,多个单词每个单词的首字母都大写。
多个单词用-分隔
名称和值之间用冒号加空格分隔
多个值之间用逗号加空格分隔,也就是map格式
两个头之间用回车分隔

请求行详解:

请求行:GET /myapp/2.html HTTP/1.1

内容 说明
GET 请求的方式。(还有POST)
/myapp/2.html 请求的资源。
HTTP/1.1 使用的协议,及协议的版本。

请求消息头详解:

内容 说明
Accept 告知服务器,客户浏览器所支持的MIME类型。
Accept-Encoding 告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是gzip压缩。
Accept-Language 告知服务器,客户浏览器所支持的语言。一般都是zh_CN或en_US等。
Referer 告知服务器,当前请求的来源。
只有当前请求有来源的时候,才有这个消息头。从地址栏输入的没有来源。
作用:1 投放广告 2 防盗链
Content-Type 告知服务器,请求正文的MIME类型。
Content-Length 告知服务器,请求正文的长度。
User-Agent 浏览器相关信息
Connection: Keep-Alive 连接的状态:保持连接
If-Modified-Since 告知服务器,客户浏览器缓存文件的最后修改时间。
Cookie(********) 会话管理相关,非常的重要。

请求正文详解:

第一:只有post请求方式,才有请求的正文。get方式的正文是在地址栏中的。
第二:表单的输入域有name属性的才会被提交。不分get和post的请求方式。
第三:表单的enctype属性取值决定了请求正文的体现形式。概述的含义是:请求正文的MIME编码类型。

enctype取值 请求正文体现形式 示例
application/x-www-form-urlencoded key=value&key=value username=test&password=1234
multipart/form-data 此时变成了多部分表单数据。多部分是靠分隔符分隔的。 -----------------------------7df23a16c0210
Content-Disposition: form-data; name="username"

test
-----------------------------7df23a16c0210
Content-Disposition: form-data; name="password"

1234
-----------------------------7df23a16c0210
Content-Disposition: form-data; name=“headfile”; filename="C:\Users\zhy\Desktop\请求部分.jpg"
Content-Type: image/pjpeg
-----------------------------7df23a16c0210

响应行详解:

响应行:HTTP/1.1 200 OK

内容 说明
HTTP/1.1 使用协议的版本。
200 响应状态码
OK 状态码描述

常用状态码介绍:

火狐浏览器对状态码详解:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status

状态码 说明
200 一切都OK>
302/307 请求重定向(客户端行为,两次请求,地址栏发生改变)
304 请求资源未发生变化,使用缓存
404 请求资源未找到
500 服务器错误

响应消息头详解:

消息头 说明
Location 请求重定向的地址,常与302,307配合使用。
Server 服务器相关信息。
Content-Type 告知客户浏览器,响应正文的MIME类型。
Content-Length 告知客户浏览器,响应正文的长度。
Content-Encoding 告知客户浏览器,响应正文使用的压缩编码格式。常用的gzip压缩。
Content-Language 告知客户浏览器,响应正文的语言。zh_CN或en_US等等。
Content-Disposition 告知客户浏览器,以下载的方式打开响应正文。
Refresh 定时刷新
Last-Modified 服务器资源的最后修改时间。
Set-Cookie(*******) 会话管理相关,非常的重要
Expires:-1 服务器资源到客户浏览器后的缓存时间
Catch-Control: no-catch 不要缓存,//针对http协议1.1版本
Pragma:no-catch 不要缓存,//针对http协议1.0版本

响应正文详解:

就和我们在浏览器上右键查看源文件看到的内容是一样的。

<html><head><link rel="stylesheet" href="css.css" type="text/css"><script type="text/javascript" src="demo.js"></script></head><body><img src="1.jpg" /></body>
</html>

NDS服务器:

DNS域名服务器(Domain Name Server)是进行域名(domain name)和与之相对应的IP地址转换的服务器。DNS中保存了一张域名解析表,解析消息的域名。 一个Web服务器也被称为HTTP服务器,它通过HTTP (HyperText Transfer Protocol 超文本传输协议)协议与客户端通信。这个客户端通常指的是Web浏览器(其实手机端客户端内部也是浏览器实现的)。

平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容。在这个看似简单的用户行为背后,到底隐藏了些什么呢?

对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后,要求建立TCP连接,等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回HTTP Response(响应)包;客户端收到来自服务器的响应后开始渲染这个Response包里的主体(body),等收到全部的内容随后断开与该服务器之间的TCP连接。

Web服务器的工作原理可以简单地归纳为:

  • 客户机通过TCP/IP协议建立到服务器的TCP连接
  • 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档
  • 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端
  • 客户机与服务器断开。由客户端解释HTML文档,在客户端屏幕上渲染图形结果

地址(URL):

URL全称为Unique Resource Location,用来表示网络资源,可以理解为网络文件路径。
基本URL的结构包含模式(协议)、服务器名称(IP地址)、路径和文件名。常见的协议/模式如http、https、ftp等。服务器的名称或IP地址后面有时还跟一个冒号和一个端口号。再后面是到达这个文件的路径和文件本身的名称。URL的长度有限制,不同的服务器的限制值不太相同,但是不能无限长。

https://itzhuzhu.com/

HTTP协议和NDS服务器相关推荐

  1. 十分钟带你学会Http协议和Tomcat服务器的原理

    1. Http协议 1. 什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准 ...

  2. WebRTC服务器理论铺垫(六):OpenSSL协议,DTLS协议,RTP协议和SRTP协议

    文章目录 一.SSL协议 二.OpenSSL 三.TLS和DTLS 四.DTLS的通信的步骤图 五.RTP协议和SRTP协议 5.1 详解RTP协议 5.2 详解RTCP协议 5.3 RTP & ...

  3. HTTP协议和web工作原理

    HTTP协议和web工作原理 http://blog.csdn.net/kjfcpua/archive/2009/12/04/4932597.aspx 本章学完之后能干什么? 要把 知识点学好,那就需 ...

  4. RabbitMQ MQTT协议和AMQP协议

    RabbitMQ MQTT协议和AMQP协议 1        序言... 1 1.1     RabbitMq结构... 1 1.2     RabbitMq消息接收... 4 1.3     Ex ...

  5. Zookeeper的ZAB协议和Leader选举过程剖析

    Zookeeper的ZAB协议和Leader选举过程剖析 关键词 ZAB 崩溃恢复 和 消息⼴播 原子广播协议(⼆阶段提交),数据不⼀致问题 崩溃恢复(Leader选举算法/zxid) 选举:投票先投 ...

  6. SQL Server 网络协议和 TDS 端点

    SQL Server 网络协议 SQL Server支持四种协议,Shared Memory:TCP/IP:Named Pipes和Virtual Interface Adapter(VIA).打开S ...

  7. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系

    现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...

  8. tcp协议和udp协议区别_TCP和UDP协议有什么区别?

    tcp协议和udp协议区别 TCP and UDP are two protocols that are part of the transport layer in a TCP/IP model o ...

  9. php-ews发送邮件,node.js 基于 STMP 协议和 EWS 协议发送邮件

    本文主要介绍 node.js 发送基于 STMP 协议和 MS Exchange Web Service(EWS) 协议的邮件的方法.文中所有参考代码均以 TypeScript 编码示例. 1 基于 ...

最新文章

  1. DX使用随记--ImageComboBoxEdit
  2. SyncStudy Poster
  3. windows 卸载IE8还原IE7的方法
  4. hdu3555 Bomb 数位dp
  5. 手把手教你用SPSS做出二元logistic回归分析
  6. Matlab绘图线条颜色,线型,标记点选项参数
  7. new Function的用法
  8. 5不触发系统键盘_防盗报警系统基础知识汇总
  9. 光荣使命微信版服务器,腾讯光荣使命手游微信可以和QQ一起玩么 微信QQ帐号数据互通么...
  10. opencv 应用程序无法正常启动0xc000007b
  11. java发送带图片的邮件_java项目如何发送带图片的邮件
  12. 【值得读】自动机器学习: 最新进展综述与开放挑战 | AutoML
  13. Android studio连接夜神模拟器(一)
  14. 人工智能与大数据时代-2020
  15. C#使用表达式树不能包含动态操作,使用反射的方式来实现T类型
  16. SAP Other 技巧--通过报错信息找到程序对应的事务代码
  17. 未来从事计算机职业规划,计算机专业职业生涯规划书2000字
  18. 最全最走心:数电-数字电子技术 复试/面试知识点大总结 (3-6更新中)
  19. 牛奶可乐经济学---阅读总结
  20. Nimbuzz使用心得

热门文章

  1. linux命令行如何上翻,Linux学习教程-获取可用命令行参数 or 文件上下翻转和左右翻转...
  2. C++ 判断元音/辅音
  3. IDEA里的web.xml页面的Servlet名称报错下方出现红色下划线
  4. Oracle010316,安装oracle后登录时出现 ERROR: ORA-01031 insufficient privileges
  5. 文件后缀_电脑文件名的后缀即扩展名的显示和隐藏方法
  6. 【youcans 的 OpenCV 例程200篇】158. 阈值处理之固定阈值法
  7. php自动抓取文章图片,从文章中提取图片,把图片保存到本地,自动提取缩略图...
  8. 计算基因组学需要计算机知识吗,生物信息学——计算基因组学的一些参考书
  9. wordpress友联_Wordpress 友情链接页面终极版 – Fatesinger
  10. excel sheet限制_Python 处理Excel内的数据(案例介绍*3)