博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《图解HTTP》1~53Page Web网络基础 HTTP协议 HTTP报文内的HTTP信息
阅读量:6188 次
发布时间:2019-06-21

本文共 1696 字,大约阅读时间需要 5 分钟。

1.Web网络基础

  通过发送请求获取服务器资源的Web浏览器等,称之为“客户端‘,Web使用称之为HTTP(超文本传输协议)作为规范,完成从客户端到服务端的运作流程。

  我们通常所说的网络,实在TCP/IP协议族基础上运作的,HTTP属于它内部的一个子集。

  与互联网相关联的协议集合起来总称为TCP/IP。

  TCP/IP协议族按层次分为四层:应用层,传输层,网络层和数据链路层,这样的好处是可以分层改动设计而不需要整体替换。

  应用层中包含各种通用的应用服务,比如FTP(文件传输协议),DNS(域名系统),HTTP等。

  传输层是应用层的下层,提供处于网络连接中的两台计算机之间的数据传输,比如TCP(传输控制协议),UDP(用户数据报协议)等。

  网络层用于处理在网络上流动的数据包,数据包是网络传输的最小数据单位,该层规定了传输路线。

  链路层是用来处理连接网络的硬件部分,包括设备驱动,网卡,光纤等。

  

  其中,与HTTP关系密切的协议有三个,分别是IP,TCP和DNS。

  IP是网络层的协议,IP协议和IP地址是两个不同的概念。IP协议的作用是将数据包传送给对方,而要确保传送到对方那里,则需要IP地址和MAC地址。

  IP地址指明了节点被分配到的地址,可以变换;MAC地址是网卡的固定地址,不可以变换。

  通信双方往往要通过多台计算机网络设备中转才能连接到对方,中转时会利用下一站中转设备的MAC地址来搜索下一个中专目标,会使用解析地址的ARP协议。ARP协议通过通信方的IP地址可以反查MAC地址。

  TCP协议位于传输层,作用是将数据进行分割并确保数据传输到对方,使用三次握手策略

  第一次握手:发送端发送一个带SYN标志的数据包给对方。

  第二次握手:接收端回传一个带有SYN/ACK标志的数据包。

  第三次握手:发送端回传一个带有ACK标志的数据包。

  如果在握手过程中某个阶段终端,TCP协议会再次以相同的顺序发送相同的数据包。

  DNS服务位于应用层,他提供域名到IP地址间的解析。

  人更容易记住www.baidu.com这样的拼写域名,而计算机更容易记住127.0.0.1这样的IP地址。

  DNS服务会使域名解析成IP或反查域名,方便通信。

 

  从你在浏览器中输入一串域名到显示网页发生了什么?

  URI(统一资源标识符)是指利用某种协议方案表示的资源定位标识符;URL(统一资源定位符)是他的子集,也就是访问的网页地址。

  下图是URI的格式。

2.简单的HTTP协议

  HTTP协议用于客户端和服务端的通信,它通过客户端发送请求报文,服务端返回响应报文完成通信。

  HTTP不保存是谁发送了请求,和谁以前发送了什么请求。要实现请求的记录,利用在每次发送请求时附加Cookie实现。

  HTTP1.1支持的HTTP方法主要有:

  GET:请求获取资源。

  POST:传输实体主体。

  关于GET和POST的详细请看文章http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

  PUT:传输文件。

  HEAD:获得文件首部。

  DELETE:请求删除文件。

  OPTIONS:询问支持哪些HTTP方法。

  TRACE:追踪路径。

  CONNECT:要求用隧道协议链接代理。

3.报文内的HTTP信息

  HTTP协议交互的信息称为HTTP报文,下图是HTTP报文的结构。

  

  HTTP通过压缩传输的内容编码和分割发送的分块传输编码优化传输效率。

  HTTP可以提通过多部分对象集合来在一个请求中传输不同类型的文件(比如视频和文本)。

  HTTP可以通过范围请求来获取指定下载的数据范围(比如一个图片的一部分)。

  HTTP可以通过内容协商返回最适合的内容(比如中文和英文浏览器返回不同语言的网页)。

转载于:https://www.cnblogs.com/zainking/p/6753739.html

你可能感兴趣的文章
写给我正在浪费的青春
查看>>
kafka常用运维命令
查看>>
Linux系统各个目录的作用
查看>>
IE8 部分网页字体模糊解决方法
查看>>
【转】制作Visual studio 2003(VS2003) DVD
查看>>
一键关闭服务器危险端口BAT文件安防篇
查看>>
Android中Cursor类的概念和用法
查看>>
CentOS 下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
查看>>
查看系统连接数命令
查看>>
探索MySQL高可用架构之MHA(4)
查看>>
rsync+inotify实时同步
查看>>
菜鸟也玩DNS之学习BIND DLZ
查看>>
折腾了一晚上Windows网络却未果
查看>>
Oracle数据库如何授权收费(Database Licensing)
查看>>
HDU 2896 病毒侵袭 AC自动机
查看>>
Linux基础篇-/etc/fstab文件
查看>>
一张图搞懂mtime(参考鸟哥第三版)
查看>>
CloudStack+XenServer详细部署方案创建高级网络资源域
查看>>
yum 安装 MySQL
查看>>
docker 常用命令解析
查看>>