图解HTTP(1)

总结一下吧。。(周末把博客的上传图片做好。拖了好久了。。)

1. 了解Web及网络基础

1.1 使用HTTP协议访问Web

这里写图片描述

Web浏览器输入指定URL,浏览器从服务器获取resource资源,然后显示页面。

一般发送请求获取服务器资源的Web浏览器叫做客户端。

这里写图片描述

Web使用HTTP(Hyper Text Transfer Protocol,超文本传输协议)作为规范。

1.2 HTTP的诞生

为了知识共享而规划Web
这里写图片描述

  1. 致力于借助多文档之间的关联关系形成超文本(HyperText),连成相互参阅的WWW(world wide web)
  2. 目前WWW包括三种:
    1.将SGML(Standard Generalized Markup Language)作为页面的文本标记语言的HTML
    2.作为文档传输协议的HTTP
    3.指定文档所在地址的URL(uniform resource locator,同一资源定位符)

WWW是Web浏览器当年用来浏览超文本的客户端应用程序时的名称,现在表示这一系列的集合。

1.3 网络基础TCP/IP

HTTP为TCP/IP的子集。TCP/IP是互联网各个相关协议的总称

网络设备互联需要规则,即协议(protocol)

TCP/IP的分层管理

TCP/IP协议层主要使用到了七层协议中的四层:

  • 应用层:决定了向用户提供应用服务时通信的活动。常见的有FTP(file transfer protocol文件传输协议)和DNS(domain name system 域名系统)
  • 传输层:传输层为应用层提供网络连接中两台计算机之间的数据传输,常见的协议包括TCP和UDP
  • 网络层:分配以怎样的路径到达对方的计算机,并发送数据包给对方
  • 链路层:处理连接网络之间的硬件部分
    这里写图片描述

使用TCP/IP协议进行网络通信时,发送端从应用层往下走,接受端相反。

客户端作为发送端,在传输层(TCP协议)将从应用层接受到的数据(HTTP响应报文)进行分割,将各个报文打上标记与端口号,然后转发给网络层。网络层(IP协议)添加通讯目的地的MAC地址,发给链路层,接收端相反。

这里写图片描述

1.4 与HTTP协议关系密切的协议:IP,TCP和DNS

IP协议(Internet Protocol)网际协议,位于网络层。作用是将各类数据包传给对方。其中,两个重要的参数是IP地址和MAC地址(media access control address)
IP地址指明了节点被分配的地址,MAC地址指网卡所属的固定的地址。IP地址可变,MAC地址一般不会变。

使用ARP协议基于MAC地址进行通信
IP间的通信基于MAC地址。在网络上,如果通信双方不在同一局域网内,则需要进行中转,中转会利用下一站中转设备的MAC地址搜索下一个中转目标。ARP(address resolution protocol)可以根据IP地址查找到对应的MAC地址。

这里写图片描述


TCP协议

TCP位于传输层,提供可靠的字节流服务–将数据分割成以报文为单位的数据包进行传输。
方法:三次握手(three-way handshaking)

这里写图片描述

若中途中断,以相同的顺序发送相同的数据包。

DNS服务:位于应用层,提供域名到IP地址的解析,或者逆向从IP地址反查域名

这里写图片描述

整体流程:
这里写图片描述

1.5 URI和URL

URI:uniform resource identifier缩写
uniform:规定统一的格式来处理多种不同类型的资源,而不用上下文环境分辨
resource:可标识的任何东西
identifier:标识符
综上,URI是由某个协议方案表示的资源的定位标识符。协议方案就是访问资源使用的协议类型名称

URI用字符串表示某一互联网资源。URL表示资源的地点,URL是URI的子集。

URI格式:
这里写图片描述

  • http:/https: 表示协议方案名获取资源时指定的类型
  • 登录信息:指定用户信息的必要的登录信息
  • 服务器地址:使用绝对URI指定。可以是DNS解析的地址,也可以是IPV4或者IPV6地址
  • 服务器端口号:没有默认
  • 文件路径
  • 查询字符串:查询参数
  • 片段标识符:指定文档内的某个位置

RFC协议:request for comments

2.简单的HTTP协议

2.1 HTTP协议用于客户端和服务器端的通信

HTTP规定,请求先从客户端开始建立通信,服务器端在没有接受到请求之前不会发送响应

这里写图片描述

GET:表示强求服务器的类型,成为method
/ :即为 /index.htm
HTTP/1.1:表示HTTP版本
等同于:请求访问某台HTTP服务器上的/index.htm资源

请求报文由下列内容组成:请求方法,请求URI,协议版本,可选请求首部字段,内容实体

这里写图片描述

接受到请求的服务器会以下列响应返回:
这里写图片描述

响应报文包括:协议版本,状态码,解释状态码的原因,创建响应时间,空一行后为资源实体的主体

这里写图片描述

2.2 HTTP是无状态的协议

HTTP不对请求和响应之间的通信状态进行保存,就是说在HTTP协议对于发送过的请求或者响应作持久化处理。

但是为了保持状态,引入了cookie。有关cookie的稍后再说

这里写图片描述

当客户端请求访问资源而发送请求时,URI需要将请求报文中的URI包括在内。

请求URI的方法一般有:

  • 完整的URI地址
  • 如果对服务器本身发送请求,使用*代替URI

2.3 告知服务器意图的HTTP方法

  1. GET
    GET方法请求访问已被URI识别的资源,指定的资源经服务器解析后返回响应内容。
    这里写图片描述

  2. POST
    POST用来传输实体的主体
    这里写图片描述

  3. PUT
    但是由于HTTP/1.1的PUT不带验证机制,任何人都可以上传文件,存在安全性问题,所以除了REST的架构机制外,一般不使用此方法。
    这里写图片描述
  4. HEAD
    与GET类似,不返回报文主体部分。用于确认URI的有效性和资源更新的日期时间等。
    这里写图片描述
  5. DELETE
    与PUT相反,根据URI删除指定的资源
    同PUT一样,除了REST之外不带验证机制
    这里写图片描述
  6. OPTIONS
    用于查询针对请求URI指定的资源支持的方法
    这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值