网络基础(二) --------------应用层:HTTP协议

(一)认识Web

WWW(万维网,World Wide Web)是将互联网中的信息以超文本形式展现的系统。(超文本:用以显示文本及文本相关的内容)。也叫做Web用来显示WWW信息的客户端软件叫做Web浏览器(简称浏览器)。
www是一个由超链接组成的系统,web客户端即浏览器可以输入URL(统一资源标识符)来访问web服务器端的资源,然后通过TTTP(超文本传输协议)传输给客户端。

Internet = web+服务。只是现在很多服务都通过浏览器来作为载体,所以现在经常混为一体。
常用的服务包括:E-mail(电子邮件);FTP,File Transfer Protocol(文件传输协议);Newsgroups(新闻组(讨论组)通常使用NNTP协议);远程登录(Telnet);手机 (3GHZ)等。
现在的邮件和网盘都是直接通过浏览器访问的了。

万维网遵循超文本传送协议—————【HTTP协议】
HTTP协议是一个应用层的协议,它使用TCP连接进行可靠地传送。
万维网应用遵守的超文本标记语言—————-【HTML】
HTML使得万维网页面的设计者可以很方便的用链接从本页面链接到因特网上的任何一个万维网页面,并且能够显示在自己的主机屏幕上。
万维网访问信息的手段与位置————-【URL】
URI常被人们表示互联网中资源(文件)的具体位置。它可以作为所有资源的标识码。

(二)HTTP协议

2.1)HTTP协议的概念
虽然我们一般说应用层协议是由我们程序员自己决定的,但是实际上有些协议已经灰顶好了只需要我们去使用就可以了 。其中HTTP协议(超文本传输协议)就是其中的一个。
这个协议详细规定了浏览器和万维网之间互相通信的规则。HTTP协议就是一个通信的规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学的就是这两种格式。客户端发送给服务器的格式叫做请求协议,服务器发送给客户端的叫做响应协议。
HTTP是一个无状态的协议。

2.2)HTTP在TCP/IPHTTP协议栈中的位置
通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:
这里写图片描述

默认HTTP的端口号为80,HTTPS的端口号为443。

2.3)认识URL
我们平时所说的“网址”就是URL;
例如:
这里写图片描述

urlencode和urldecode
像/?:等这样的字符被url当做特殊意义进行了处理,比如某个参数中要是带有特殊意义的字符,就必须先对其进行转义。
转义的规则如下:
将需要转码的字符转为16进制,然后从右向左,取四位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
例如:
这里写图片描述
在这里“+”被转义成了“%2B”,其实urldecode就是urlencode的逆过程。

下面这个网址可以将其进行转化。

http://tool.chinaz.com/Tools/urlencode.aspx

2.4)HTTP的请求响应模型

HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:
这里写图片描述

这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。

HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

2.4.1)HTTP请求
我们知道HTTP的请求一般由3~4部分组成的,分别为请求行、请求报头、空行,第四部分一般不讨论为传入的一些正文信息。
这里写图片描述

  • 首行:【方法】+【url】+【版本】
  • Header(请求报头):请求的属性,冒号分割的键值对,每组属性之间使用\n分隔;遇到空行表示Header部分结束。
  • Body:空行后面的内容都是Bady,允许为空字符串,如果Bady存在,则Header中会有一个Content_Length来标识Bady的长度。

2.4.2)HTTP响应
这里写图片描述
2.5)HTTP的方法

这里写图片描述
2.6)HTTP的状态码
这里写图片描述
其中比较常见的就是200(OK),404(Not Found),403(Forbidden),302(Redireact,重定向),504(Bad Gateway)

2.7)HTTP常见Header

  • Content-Type:数据类型(text/html等);
  • Content-Lenthgth:Body的长度,以字节为单位;
  • Host:客户端告知服务器,所请求的资源是在哪个主机的哪个端口上;
  • User-Agent:生命用户的操作系统和浏览器的版本信息;
  • referer:当前页面是从哪个页面跳转过来的;
  • location:搭配3xx状态吗使用,告诉客户端接下来要去哪里访问;
  • Cookie:用于在客户端存储少量的信息,通常用于实现会话(session)的功能;
    Cookie
    在Web应用中为了获取用户信息使用一个叫做Cookie的机制,Web服务用Cookie在客户端保存信息(多为用户名和登录名等信息),Cookie常被用来保存登录信息或网络购物中放入购物车的信息。

猜你喜欢

转载自blog.csdn.net/daboluo521/article/details/80382565