《图解HTTP》 学习日记

发布于:2025-02-10 ⋅ 阅读:(48) ⋅ 点赞:(0)

1.了解WEB以及网络基础

1.1使用HTTP协议访问WEB

web页面显示:根据web浏览器地址栏中输入指定的URL,web浏览器从web服务端获取文件资源(resource)等信息,从而显示出web页面

 1.2网络基础TCP/IP

通常使用的网络(包括 互联网)是在tcp/ip协议族的基础上运作的,而http属于它内部的一个子集

1.2.1TCP/IP协议族

计算机与网络设备相互通信,双方就需要使用同样的方法,比如,你和别人约定在某个地方见面,见面前,约定好在什么地方见面,见面时双方的特征,以及见面以后做什么等规则都要事先确定,不同硬件、操作系统之间的通信,都需要一种规则,这种规则称为协议(protocol)

协议包含各种内容:从电缆的规格到IP地址的选定方法,寻找异地用户的方法,双方建立通讯的顺序,以及WEB页面现实的需要处理的步骤等等,

TCP/IP一种解释是,互联网所关联的协议集合。另一种是特指TCP/IP这两种协议。还有一种是IP通信过程中,使用到的协议族的统称

1.2.2TCP/TP分层管理

TCP/IP协议族按层次分成以下4层:应用层,传输层,网络层,数据链路层 

分层作用类似模块化,每一层只有处理当前层的问题即可,让每一层更专注处理每一层该处理的问题 

1.2.2.1应用层

应用层决定了向用户提供应用服务时的通信活动

 应用服务比如:

  • FTP(File Transfer Protocol,文件传输协议)
  • DNS(Domain Name System,域名系统)等

HTTP协议处于应用层

1.2.2.2传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输

传输层有两个性质不同的协议:

  • TCP(Transmission Control Protocol,传输控制协议)
  • UDP(User Data Protocol,用户数据报协议)
 1.2.2.3网络层(又名网络互连层)

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

与对方计算之间或则通过对台计算机或则网络设备进行传输时,网络层就是在众多路线中选择一条路线

 1.2.2.4链路层

用来处理链接网络的硬件部分,包括控制操作系统,硬件的设备驱动,NIC(Network interface Card,网络适配器,即网卡),光纤,等一切物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均属于链路层的作用范围

1.2.3 TCP/IP通信传输流

  • 利用TCP/IP协议族进行网络通信时,发送端从客户端从上往下走,接收端服务端从下往上走

 HTTP举例说明:

  1. 发送端客户端在应用层(http协议)发送一个web页面的http请求
  2. 到了传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
  3. 到了网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层
  4. 到了接收端的服务器在链路层接收到数据,按顺序往上层发送,当传输到应用层,才能算真正的接收到由客户端发送过来的HTTP请求

 发送端在层与层之间传输数据时候,每经过一层时候必定会被打上一个该层的所属的首部信息,反之接收端在层与层传输数据时候,每经过一层会把对应的首部消去,这种数据信息包装起来的做法称为封装

 1.3 与HTTP关系密切的协议:IP、TCP、DNS

1.3.1 负责传输的IP协议

IP(internet Protocol)网络协议处于网络层,作用是把各种数据包发送给对方,其中最重要的条件IP地址和MAC(Media Access Control Adress)地址,

  • IP :节点分配的地址,可变,可以和mac进行配比
  • MAC:网卡所属的固定地址,基本上不会更改,可以和ip进行配比
1.3.1.1 使用ARP协议进行MAC地址通信

        ARP(Adress Resolution protocol)协议,是一种解析地址的协议,根据通信方的IP地址可以反查出对应的MAC地址

  •   IP之间通信会依赖于MAC地址,正常情况非统一局域网(lan)下的通信是通过多台计算机和网络设备的中转才可以连接到对方,在中转的时候,会利用下一站中转设备的MAC地址搜索下一个中转目标。这个过程使用到的协议就是ARP

1.3.2 确保可靠性的TCP协议

处于传输层的TCP,可以确定数据最终是否送达,发送过程把大块数据分割成报文为单位的数据包进行传输。

 1.3.2.1 可靠的三次握手

TCP协议采用三次握手策略来确定数据是否传输成功,TCP协议处理好数据发送后,会向对方确定是否发送成功,握手过程使用了TCP标志SYN(synchronize)和ACK(acknowledgement)

握手过程如有中断,会进行相同的顺序再次发送 

 1.4 负责域名解析的DNS服务

 DNS(Domain name System)服务和HTTP一样处于应用层,它提供了域名到IP之间的解析服务

 计算机既可以被赋予IP地址也可以被赋予主机名和域名例如www.hackr.jp

正常情况下访问另一台计算机是通过域名或则主机名,但是计算机擅长处理数字,所以就需要DNS来解析

DNS可以通过域名查找IP,也可以通过IP逆向查找对方域名

 1.5 各种协议之间的关系

 

 1.5 URI和URL

URI(Uniform Resource Identifier) 统一资源标识符,URL(uniform Resource locator)统一资源定位符

URI:表示由某个协议方案表示的定位符,如(https ftp) 等,表示指定的URI必须涵盖全部必要的信息

URL:例如www.baidu.com,可见URL是URI的子集

2.简单的HTTP协议

2.1 HTTP用于客户端和服务端之间的通信

客户端:请求访问资源

服务端:提供响应资源

仅有一条路线通信时,应用http协议的时候必然有一端是客户端,另一端是服务端 

2.2通过请求和响应的交换达到通信 

1.通信是建立于客户端发出了请求 。

2.服务器在没有收到请求前是不会发出通信。

客户端: 发出请求下面是请求报文

  • GET: 表示请求方法(method)
  • /idnex.htm: 表示请求资源的访问对象也叫做请求URI(request-URI)
  • HTTP/1.1: http版本号提示客户端使用的HTTP协议功能

综合意思就是通过HTTP协议,使用GET方法访问某台服务器上的 /idnex.htm文件

  • 请求报文: 是由请求方法,URI,协议,可选的请求首部字段,和内容实体构成的

接到收请求内容实体的服务器,会将请求内容的处理结果以响应的形式返回

  • HTTP/1.1表示服务器对应的版本
  • 200 OK 表示请求结果的状态码和原因短语
  • Date:true,10 Jul 2012 06:50:15 GMT 表示时间
  • Content-Type 是HTTP头字段,用于指示请求或响应的媒体类型。
  • text/html 是媒体类型(MIME类型),表示内容是HTML文档。
  • 紧接着就是响应的资源实体 

2.3 HTTP是不保存状态的协议 

HTTP协议是不会保存状态的,既当开始一个新的通信的时候,是不会保存上一次的通信情况

 

 HTTP1.1虽然是无状态协议,但是为了实现期望保持状态功能,于是引进了cookie技术,使用cookie进行管理状态,cookie后续讲解

2.4请求URI定位符 

 HTTP使用URI定位网络上的资源,正是因为URI的特定功能,在互联网上可以访问到任意位置的资源

 

 

客户端访问资源发送请求时,需要进URI存放在请求报文中,存放方式很多

 

除此之外对服务器本身发起请求,可以用*代替uri 

 

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

下面是HTTP1.1中使用的方法

 1.GET:获取资源

GET方法请求已被URI访问到的资源,指定的资源经服务器端解析返回响应内容:例如请求文本就保持原样返回

 

POST:传输实体主体

POST方法主要用来传输实体,虽然GET方法也可以传输实体,但是一般不使用GET,而是用POST方法

 

 

 

 

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到