HTTP的基础知识和DNS的解析过程

简介: 我们都知道现在大部分的B/S 系统。其核心的通讯协议还是 TCP/IP 协议,应用层的话就是HTTP 协议,我们最常的打交到的就是HTTP协议了。所以了解HTTP协议的相关知识显得尤为重要。

概述

我们都知道现在大部分的B/S 系统。其核心的通讯协议还是 TCP/IP 协议,应用层的话就是HTTP 协议,我们最常的打交到的就是HTTP协议了。所以了解HTTP协议的相关知识显得尤为重要。

HTTP请求报文

一个HTTP请求报文由请求行(request line)+ 请求头部(head)+请求体 3个部分组成。格式如下:

<request-line>
<headers>
<request-body>

其中请求头部由 关键字/值对组成,每行一对,关键字和值用英文冒号“:” 分隔。

常用的请求头有:

1User-Agent :产生请求的浏览器类型 例如:User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36

2.Accept:客户端可识别的内容类型列表。例如:Accept: application/json, text/javascript, /; q=0.01

3.Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。例如:www.baidu.com

4.Cookie: 客户端的Cookie就是通过这个报文头属性传给服务端,通过sessionId 可以知道同一个会话

Cache-Control :对缓存进行控制 例如: Cache-Control :no-cache

5.Referer : 用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着HTTP来源地址,目前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

HTTP 响应报文

与请求报文类似,HTTP 响应报文也由三个部分组成,分别是:状态行、消息报头、响应正文。格式如下:

<status-line>
<headers>
<response-body>

HTTP 响应头

响应头部也是由 关键字/值对组成,每行一对,关键字和值用英文冒号“:” 分隔。常用的响应头有:

1.Server : 使用服务器名称,如Server:Apache/1.3.6(Unix)

2,Content-Type: 用于指明发送给接收者的实体正文的媒体类型,如Context-Type: application/json;charset=UTF-8

3.Content-Encoding: 与请求报文Accept-Encoding对应,告诉浏览器服务端采用的什么压缩编码

4.Content-Language : 描述了资源所用的自然语言,与Apache-Language 对应

5.Content-Length: 指明实体正文的长度,用以字节方式存储的十进制数字来表示

6.Keep-Alive : 保持连接的时间:如 Keep-Alive: timeout=5,max=20

说完了,响应头,我们还需要重点关注下常见的状态码。HTTP状态码有很多,我们经常会碰到的状态码有如下几个:


HTTP状态码

1.200 表示客户端请求成功

2.302 表示临时跳转,跳转的地址通过Location指定

3.400 表示客户端请求有语法错误,不能被服务器识别

4.403 表示服务器收到请求,但是拒绝提供服务

5.404 表示请求的资源不存在

6.500 表示服务器发生不可预期的错误

说完了HTTP请求报文和响应报文的相关知识,接下来我们来看看,HTTP的请求方法


HTTP的请求方法

HTTP 1.1 中请求方法有GET,POST,PUT,DELETE,HEAD。其中最常用到的就是GET方法和POST 方法了。


GET请求

1.GET请求,请求数据会直接附在URL之后(就是把数据防止在HTTP协议头

<request-line>中),以?分割URL和传输数据,多个参数用&连接;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表ASCII。


虽然HHTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度

进行限制,而在实际开发中存在的限制主要有:

GET:特定浏览器和服务器对URL长度有限制,例如:IE对URL长度的限制是2083字节(2K+53)(对应231个中文字符),chrome 的长度限制超过8182个字符(对应909个中文字符)返回414的错误。

2. GET 请求,请求数据直接以明文出现在URL中,对于一下私密数据(账号和密码),非常不安全。


POST 请求

1.POST 请求是把提交的数据放置在HTTP请求报文的请求体<request-body>中,理论上传输数据不受限。POST请求,地址栏不会改变。

2. POST 请求,请求数据是放在<request-body>中,相对GET请求安全一些。


DNS 解析过程

DNS的作用

DNS就是将域名解析成IP地址


DNS解析过程

24dddc1e259e08a0725be5a4fc524865_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ1MzQ4MDg=,size_16,color_FFFFFF,t_70.png

如上图所示:DNS的解析过程主要有十步:

1.浏览器检查缓存中有没有这个域名对应的解析过的IP地址,如果有的话解析过程就结束,缓存时间由TTL属性来设置

2.如果用户浏览器缓存没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果,其实操作系统中也会有一个域名解析的过程。在Windows中可以通过 C:\Windows\System32\drivers\etc\hosts文件来设置。在Linux中这个配置文件是/etc/hosts

3.在用户电脑中的网络配置中都会有“DNS服务器地址”用于配置域名服务器。称为LDNS

在Windows 中通过 ipconfig 查询这个地址,在Linux中通过 cat /etc/resolve.conf 查看

4.如果LDNS 仍然没有命中,就直接到Root Server域名服务器请求解析。

5.根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址,

gTLD是国际顶级域名服务器,如:.com、.cn、.org等

6.本地域名服务器(Local DNS Server)再向上一步gTLD服务器发送请求

7.接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器地址。这个

Name Server通常就是你注册的域名服务器。

8.Name Server域名服务器会查询存储的域名和IP的映射关系表。在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server 域名服务器

9.返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间由TTL值控制

10.把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

总结

本文简单的介绍了HTTP的相关基础知识,包括请求报文,响应报文,以及其请求头和响应头常用的属性。然后,重点介绍了GET请求和POST请求。最后介绍了DNS的解析过程。

相关文章
|
7月前
|
域名解析 存储 网络协议
域名解析的终极指南:从基础到进阶,彻底搞懂 DNS 记录
域名解析是网站运行的基础,正确配置DNS记录至关重要。本文从基础到进阶全面解析DNS知识,涵盖A、AAAA、CNAME、MX、TXT、CAA等常见记录类型及其应用场景。通过学习,你将了解DNS的工作原理,掌握如何优化域名配置,确保网站与邮件服务高效运行。无论搭建个人博客还是企业官网,本文都能助你轻松搞定域名解析!
1486 0
|
9月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
6月前
|
域名解析 网络协议 网络安全
SSL证书验证全攻略:DNS/HTTP/手动解析怎么选?
SSL证书在网络安全中至关重要,1Panel提供三种验证方式:DNS验证、HTTP验证和手动解析。DNS验证便捷,适合CDN网站;HTTP验证快速,需服务器在线;手动解析灵活,但操作复杂。根据需求选择合适确认方式,定期检查证书状态。
739 2
|
6月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
233 1
|
7月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
375 3
|
8月前
|
域名解析 存储 缓存
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
777 29
|
6月前
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
|
9月前
|
缓存 安全 网络安全
代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
本文详细介绍了HTTP、HTTPS和SOCKS5三种代理协议的特点、优缺点以及适用场景。通过对比和分析,可以根据具体需求选择最合适的代理协议。希望本文能帮助您更好地理解和应用代理协议,提高网络应用的安全性和性能。
537 17
|
9月前
|
负载均衡 网络协议 容灾
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
193 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS