计算机网络 Kurose 第二章 应用层 2.2Web和HTTP

2.2.1 HTTP概况

Web的应用层协议是超文本传输协议(HypterText Transfer Protocol,HTTP),它是Web的核心,在[RFC 1945]和[RFC 2616]中进行了定义。

HTTP由两个程序实现,一个是客户程序,一个是服务器程序

Web页面是由对象组成的,一个对象只是一个文件,多数Web页面含有一个HTML基本文件,以及几个引用对象。

HTML基本文件通过对象的URL地址引用页面中的其他对象。每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名。

HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式

HTTP使用TCP作为它的支撑运输协议。

服务器向客户发送被请求的文件,而不存储任何关于该客户的状态信息。HTTP服务器并不保存关于客户的任何信息,所以我们说HTTP是一个无状态协议。

2.2.2 非持续链接和持续链接

HTTP中的非持续连接和持续连接,以及 三次握手 过程

2.2.3 HTTP 报文格式

1.HTTP请求报文

下面提供了一个典型的HTTP请求报文:

GET /somedir/page.html HTTP/1.1 ##请求行

##首部行

Host:www.someschool.edu

Connection:close

User-agent:Mozilla/5.0

Accept-language:fr

请求行分为3个字段:方法字段(GET,POST,HEAD,PUT,DELETE),URL字段和HTTP版本字段

当浏览器请求一个对象的时候,使用GET方法,在URL字段带有请求对象的标识,浏览器实现的是HTTP1.1版本。

首部行中Host指明了对象所在的主机,Connection:close告知服务器不使用持续链接。User-agent指出发送请求的浏览器类型,这里就是火狐浏览器,Accept-language指出语言版本。

 2.HTTP响应报文

HTTP/1.1 200 OK  ##状态行

##首部行

Connection:close

Date:Tue,18 Aug 2015 15:44:04 GMT

Server:Apache/2.2.3 (centos)

Last-Modified:Tue,18 Aug 2015 15:11:03 GMT

Content-Length:6821

Content-Type:Text/html

##实体体

(data data data data data ...)

状态行有3个字段:协议版本字段,状态码和响应状态信息。

一些常见的状态码和相关的短语包括:

  • 200 OK 请求成功,信息在返回的响应报文中。
  • 301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location:首部行。客户软件将自动获取新的URL
  • 400 Bad Request:一个通用差错代码,指示该请求不能被服务器理解
  • 404 Not Found:被请求的文档不在服务器上
  • 505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本

首部行中Connection:close告知客户发送完报文后关闭TCP连接。Date指示服务器产生并发送该响应报文的日期和时间。这个时间是指服务器找到该文件,并且插入报文中进行发送的时间。Server:指示服务器。Last-Modified:对象创建或者最后修改的时间。Content-Length:指示了被发送对象中的字节数,Content-Type指示了对象时HTML文本。

2.2.4 用户与服务器的交互:cookie

Web站点通过cookie来进行站点对用户跟踪

cookie有4个组件:

  • 在HTTP响应报文中的一个cookie首部行
  • 在HTTP请求报文中的一个cookie首部行
  • 在用户端系统中保留有一个cookie文件,并由用户浏览器就行管理
  • 位于Web站点的一个后端数据库

2.2.5 Web缓存

Web缓存也叫代理服务器,它是能够代表初始Web服务器来满足HTTP请求的网络实体

Web缓存器有自己额磁盘存储空间,并在存储空间中保存最近请求过的对象副本。

1)浏览器创建一个到Web缓存器的TCP连接,并向Web缓存器中的对象发送一个HTTP请求。

2)Web缓存器进行检查,看看本地是否存储了该对象副本。如果有,Web缓存器向客户浏览器用HTTP响应报文返回

3)如果Web缓存器中没有该对象,它就打开一个与该对象的初始服务器的TCP连接。Web缓存器则在这个缓存器到服务器的TCP连接上发送一个该对象的HTTP请求。在收到该请求后,初始服务器向该Web缓存器发送具有该对象的HTTP响应。

4)当Web缓存器接收到该对象的时候,它在本地存储空间存储一份副本,并向客户的浏览器用HTTP响应报文发送该副本。

 2.2.6条件GET方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值