计算机网络相关:应用层协议(二):HTTP

前言

复习下计算机网络的知识并记录

正文

定义:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。

一.HTTP请求过程(非持续连接)

访问URL的过程:(以http://www.someSchool.edu/department/home.index为例)

1.HTTP客户进程在端口号80发起一个到服务器的TCP链接(三次握手),在客户和服务器上分别有套接字与该连接相关联。

2.HTTP经它的套接字向该服务器发送一个HTTP请求报文,请求报文包含了路径名/department/home.index。

3.HTTP服务器进程经它的套接字接受该请求报文,从其存储器中检索出对象www.someSchool.edu/department/home.index,在一个HTTP响应报文中封装对象,并通过套接字向服务器发送响应报文。

4.服务器进程通知TCP断开该TCP连接(但直到TCP确认客户已经完整地收到响应报文为止,它才会实际中断连接,即四次分手过程)

5.HTTP客户端接收响应报文,TCP连接关闭。如果有其他文件的引用,重复前4个步骤。

二、HTTP报文格式

1.HTTP请求报文

GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection:close
User-agent:Mozilla/5.0
Accept-Language:fr

1)第一行是请求行,包含了请求的方法、URL字段、HTTP版本字段

2)之后的叫首部行。Host为主机域名,Connection为连接方式(close短连接/Keep-Alive长连接),User-Agent为用户代理,即向服务器发送请求的浏览器的类型,accpet——language即语言。

3)如果是Post,首部行之后接一个空行,然后是正文内容(表单之类的)。

4)Get通常用来向服务器请求一个对象,HEAD类似于GET,只不过服务器收到HEAD请求时只用一个HTTP报文响应,不会返回对象,常用来跟踪调试。PUT与Web发行工具联合使用,允许用户上传对象到指定的Web服务器上的指定路径。Delete允许用户删除Web服务器上的对象。

2.HTTP响应报文

HTTP/1.1 200 OK
Connection:close
Date:Tue,09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (Centos)
Last-Modified:Tue,09 Aug 2011 15:11:03 GMT
Content-Length:6821
Content-type:text/html 

(data ...data ...data)

它分为三部分:初始状态行、6个首部行、实体行。

初始状态行:包含协议版本、状态码和对应的状态信息。。

首部行:Connection连接方式,Date表示服务器产生并发送该响应报文的日期时间,Server服务器类型,Last-Modified表示该对象创建或者最后修改的日期时间,一般用于缓存更新的时间比较;Content-Length指示被发送对象的字节数;Content-type表示对象类型格式。

实体内容:上述的响应报文的实体为HTML文本

返回码:

  • 200 OK:请求成功。
  • 301 Move Permanently: 请求的对象已经被永久转移,新的URL定义在响应报文的Location首部行中。
  • 400 Bad Request:通用差错代码,指示该请求服务器无法理解。
  • 404 Not Found:请求的资源不存在。
  • 5xx :服务器的问题。

3.Cookie

用于标识一个用户,并保存一些用户信息。

Cookie技术有4个组件:

  • 在HTTP响应报文中的一个cookie首部行:Set-cookie(第一次建立连接时如果无cookie或者cookie过期,服务器会返回一个新的给客户端)。
  • 在HTTP请求报文中的一个cookie首部行:cookie。
  • 在用户端系统中保留的一个cookie,并由用户浏览器管理。
  • 位于Web站点的后端数据库的cookie

4.补充

URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成

URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源

URN全名为Uniform Resource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化

 参考资料

《计算机网络 自顶向下方法 第6版》  机械工业出版社    【美】  James F.Kurose & Keith W.Ross

原文地址:https://www.cnblogs.com/0kk470/p/8618417.html

时间: 2024-10-03 06:01:59

计算机网络相关:应用层协议(二):HTTP的相关文章

二次实验报告:使用Packet Tracer分析应用层协议

个人信息 郑兰艳 201821121064 计算1813 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序. 2 实验内容 使用Packet Tracer,正确配置网络参数,抓取应用层协议的数据包并分析,协议包含DNS.FTP, DHCP, stmp, pop3.步骤包含: 建立网络拓扑结构 配置参数 抓包 分析数据包 3. 实验报告 (1)建立网络拓扑结构 说明:将一台PC主机与一台服务器连接在一起,建立网络拓扑结构 3

TCP/IP 7 应用层协议

第8章 应用层协议 8.1 TCP/IP应用层协议主要是指OSI参考模型中的第5层.第6层.第7层上半部分的协议.(会话层,表示层,应用层) 应用层协议定义: 利用网络的应用程序有很多,包括web浏览器.电子邮件.远程登陆.文件传输.网络管理等.能够让这些应用进行特定通信处理的正是应用协议. TCP和IP等下层协议是不依赖于上层应用类型.适用性非常广的协议.而应用协议则是为了实现某种应用而设计和创造的协议. 应用协议与协议的分层: 应用可以直接享用传输层以下的基础部分.因为开发者只要关心选用哪种

计算机网络之应用层_part -1

应用层协议原理 一.网络应用程序体系结构 网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种: 1.客户--服务器体系结构: 有一个总是打开的主机(称为服务器),他服务于来自许多的其他的称为客户的主机的请求,客户--服务器体系结构德 一个典型的例子是:Web应用程序,其中总是打开的Web服务器接收到来自其他客户的对某对象的请求时,它会向该客户发送所请求的对象作为响应.值得注意的是客户--服务器体系结构有两个重要特征: a.客户之间不直接通信 b.服

计算机网络七层协议模型 “开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)

计算机网络七层协议模型 作者:Ryan    时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性.功能特性以及过程特性,为上层协议提供了一个传输数据的物理媒体. 在这一层,协议数据单元为比特(bit). 属于物理层定义的典型规范代表包括:RS-232.RS-449.RS-485.USB2.0.IEEE-1394.xDSL.X.21.V.35.RJ-45等. 在物理层的互联设备包括:集线器(Hu

编译内核让netfilter支持过滤layer7应用层协议

netfilter/layer7 默认情况下,netfilter只能过滤二.三.四层的数据,但是对于应用层的数据(比如qq,迅雷视频等等)是无法过滤掉的.我们又知道netfilter是工作在内核当中的,因此要让netfilter支持过滤layer7应用层协议的数据必须要重新编译内核.由于iptables是规则编辑工具,因此也要重新编译iptables让其能够支持对layer7应用层协议的编写. 整体步骤如下: 一.需要使用的软件 内核源码:linux-2.6.28.10.tar.gz iptab

应用层协议实现系列(一)——HTTPserver之仿nginx多进程和多路IO的实现

近期在尝试自己写一个Httpserver,在粗略研究了nginx的代码之后,决定仿照nginx中的部分设计自己实现一个高并发的HTTPserver,在这里分享给大家. 眼下使用的较多的Httpserver就是apache和nginx,apache的主要特点就是稳定,而nginx的主要特点是承载的并发量高.在这里从实现原理上做一个分析: apache採用的是多进程server模型,即server每监听到一个连接时,会创建一个新的进程去处理连接,进程与进程之间是独立的,因此就算进程在处理连接的过程中

计算机网络的应用层简单介绍:

应用层的常用的两种网络结构: client-server 结构和 P2P结构(即peer to peer): 在这一层要涉及到端口与进程:各应用之间的通信实际上为各进程之间的通信:用端口号来区分同一台机器上的不同进程: socket:为进程之间的接口,又称为API(application programming interface), 它可以看信息在出进程中的出入口: 整个结构大致如下图所示: WEB与HTTP: HTTP为超文本传输协议,(HyperText transfer protocol

TCP-IP之应用层协议

应用层协议是多种多样的,比如 DNS.FTP.Telnet.SMTP.HTTP.RIP.NFS 一.DNS DNS (Domain Name Service 域名服务) 协议基于 UDP,使用端口号 53. 由数字组成的 IP 地址很难记忆,所以我们上网使用网站 IP 地址的别名--域名.实际使用中,域名与 IP 地址是对应的,这种对应关系保存在DNS 服务器之中. 在浏览器中输入一个域名后,会有 DNS 服务器将域名解析为对应的 IP 地址.注意这和网络层的 ARP 协议的不同之处:DNS 提

计算机网络之应用层

应用层作文协议栈的最高层,与用户亲密打交道的的协议层也就是应用层.场景的组件:浏览器,http服务器等. 主要内容 1网络应用体系结构 2.进程通信 3 需要传输层提供服务 4 应用层协议 2种网络应用体系结构 客户-服务器体系结构 代表协议为HTTP.特点:(1)客户端之间不可直接通信:(2)服务器有已知的IP,服务器总是打开的. 容易出现性能问题:一台服务器往往跟不上海量的客户请求. P2P体系结构 对服务器要求相对不高:应用程序间可以直接通信.直接通信的主机叫peers,一般是用户控制的主

常用应用层协议HTTP、RTSP、RTMP比较

HTTP(超文本传输协议).RTSP(Real Time Streaming Protocol实时流传输协议).RTMP(Routing Table Maintenance Protocol路由选择表维护协议)是应用层协议,理论上都可以做直播.点播,实际上直播多采用RTMP和RTSP.点播则多用RTSP和HTTP. 一.常用领域: HTTP(HTTPS)所有数据都作为文本处理,广泛应用于网络访问,是公有协议,有专门机构维护. RTSP流媒体协议,多用在监控领域视频直播点播:是公有协议,有专门机构