网络基础——HTTP协议

每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的应用层的具体内容就是规定应用进程在通信时所遵循的协议。

应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。

HTTP又被称为超文本传送协议。为了使超文本的链接能够高效率的完成,就需要用HTTP协议来传送一切必须的信息。

从层次的角度上来看,HTTP是面向事务的应用层协议,它是万维网上能够可靠的交换文件的重要基础。


  • URL

URL是统一资源定位符,是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。

URL相当于一个文件名在网络范围的拓展。因此URL是与因特网相连的机器上的任何可访问对象的一个指针。平时我们俗称的“网址”,其实就是URL。

    

URL的一般形式是:

    

使用HTTP的URL的一般形式:

                            

注:http为80号端口;https为443号端口。


  • urlencode和urldecode

urlencode可将字符串以URL编码,用于编码处理。urldecode可对字符串进行URL解码。

转义的规则如下:将需要转码的字符转为16进制,然后从右至左,取四位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。


  • HTTP协议格式

HTTP请求:

POST /index.html HTTP/1.1  
HOST: www.XXX.com
User-Agent: Mozilla/5.0(Windows NT 6.1;rv:15.0) Firefox/15.0

Username=admin&password=admin


首行:[方法] + [URL] + [版本]

Header:请求的属性,冒号分割的键值对,每组属性之间使用\n分隔;遇到空行表示Header部分结束

Body:空行后面的内容都是Body。Body允许为空字符串。


HTTP响应:

HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>
<body>
    <p>this is http response</p>
</body>
</html>

首行:[版本号] + [状态码] + [状态解释码]

Header:请求的属性,冒号分割的键值对,每组属性之间使用\n分隔;遇到空行表示Header部分结束

Body:空行后面的内容都是Body。Body允许为空字符串。


HTTP的方法:


其中最常见的就是GET方法和POST方法。


HTTP的状态码


最常见的状态码,比如200(OK),404(Not  Found),403(Forbidden),302(Redirect,重定向),504(Bad  Gateway)。


HTTP常见Header:

    (1)Content-Type:数据类型(text/html等)

    (2)Content_Length:Body的长度

    (3)Host:客户端告知服务器,所请求的资源是在哪个主机上的哪个端口上

    (4)User-Agent:声明用户的操作系统和浏览器版本信息

    (5)referer:当前页面是从哪个页面跳转过来的

    (6)location:搭配3xx状态码使用,告诉客户端接下来要去哪里访问

    (7)Cookie:用于在客户端存储少量信息,通常用于实现会话(session)的功能。


  • Cookie

Cookie 历来指就着牛奶一起吃的点心。然而,在因特网内,“Cookie”这个字有了完全不同的意思。那么“Cookie”到底是什么呢?“Cookie”是小量信息,由网络服务器发送出来以存储在网络服务器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。这是很有用的,让浏览器记住这位访客的特定信息,如上次访问的位置、花费的时间或用户首选项(如样式表)。Cookie 是个存储在浏览器目录的文本文件,当浏览器运行时,存储在 RAM 中。一旦你从该网站或网络服务器退出,Cookie 也可存储在计算机的硬驱上。当访客结束其浏览器对话时,即终止的所有 Cookie。

目前有些Cookie是临时的,有些则是持续的。临时的Cookie只在浏览器上保存一段规定的时间,一旦超过规定的时间,该Cookie将会被系统清除。持续的Cookie则保存在用户的Cookie文件中,下一次用户返回后,仍然可以对它进行调用。

服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。




猜你喜欢

转载自blog.csdn.net/cecilia3333/article/details/80344141