IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络 Kurose 第二章 应用层 2.2Web和HTTP -> 正文阅读

[网络协议]计算机网络 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方法

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:18:36  更:2022-01-28 12:20:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:48:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码