前言
复习下计算机网络的知识并记录
正文
定义: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

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

  1. 计算机网络Web应用层与运输层(HTTP/TCP)

    应用层协议原理 Web和HTTP DNS:英特网的目录服务 运输层 面向连接的运输:TCP及拥塞原理 一.应用层协议原理 DNS域名解析: (用例:www.baidu.com)域名解析是网络请求的第一 ...

  2. TCP/IP协议<二>

    一.TCP/IP的标准化 1.TCP/IP的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属 ...

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

    应用层协议原理 一.网络应用程序体系结构 网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种: 1.客户--服务器体系结构: 有一个总是打开的主机(称为 ...

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

    计算机网络七层协议模型 作者:Ryan    时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性 ...

  5. 什么是http协议(二)

    一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. ...

  6. RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议

    RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwo ...

  7. SMB2 Protocol – 简介(应用层协议主要用于在计算机间共享文件、打印机、串口等)

    SMB2 Protocol – 简介 SMB协议简介: 服务器信息块(SMB)协议是一个应用层协议主要用于在计算机间共享文件.打印机.串口等. 在介绍SMB协议的时候,一般提到使用的端口为139,44 ...

  8. 计算机网络——TCP/IP协议族详解

    一.OSI七层协议体系结构域TCP/IP四层体系结构对比 ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是 ...

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

    HTTP(超文本传输协议).RTSP(Real Time Streaming Protocol实时流传输协议).RTMP(Routing Table Maintenance Protocol路由选择表 ...

  10. Web应用与应用层协议

    Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...

随机推荐

  1. C#之面向对象

    话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是晏众文武,在酒席间,曹操诗兴大发,不觉吟道:"喝酒唱歌,人生真爽" ...

  2. Win 32 编程之按钮消息响应(代码小错误修复)

    最近不想用MFC写东西了,有没有安装Qt和其他图形化开发环境,只能捣鼓API了.于是乎,就有了以下的学习-- 首先,老套的创建个Windows窗口,由于自己有点小懒,就直接用Hello Word的源码 ...

  3. Java实现附近地点搜索

    Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法 最近做一个项目:需要查询一个站点(已知该站点经纬度)1km-10km范围内的其它站点.所以,我首先想到的是,对每条 ...

  4. 某公司基于FineBI数据决策平台的试运行分析报告

    一.数据平台的软硬件环境 二.组织机构和权限体系 组织机构:平台中已集成一套组织机构,可以建立部门.人员.也可以与现有系统的组织机构集成,将组织机构导入到平台中. 功能权限:通过配置功能点URL的方式 ...

  5. 开源框架VTMagic的使用介绍

    VTMagic 有很多开发者曾尝试模仿写出类似网易.腾讯等应用的菜单分页组件,但遍观其设计,大多都比较粗糙,不利于后续维护和扩展.琢磨良久,最终决定开源这个耗时近两年打磨而成的框架,以便大家可以快速实 ...

  6. windows下追踪路由

    追踪路由 tracert   目标ip/域名 测试两个ip是否畅通 ping    目标ip 在windows查看ip情况 ipconfig linux/unix下查看ip情况的使用 ifconfig

  7. Erlang cowboy http request生命周期

    Erlang cowboy http request生命周期 翻译自: http://ninenines.eu/docs/en/cowboy/1.0/guide/http_req_life/ requ ...

  8. Linux其他常见压缩备份工具 - dd,cpio

    dd dd 可以读取磁碟装置的内容(几乎是直接读取磁区"sector"),然后将整个装置备份成一个文件呢!真的是相当的好用啊- dd 的用途有很多啦-但是我们仅讲一些比较重要的选项 ...

  9. Linux Framebuffer驱动剖析之一—软件需求

    嵌入式企鹅圈将以本文作为2015年的终结篇,以回应第一篇<Linux字符设备驱动剖析>.嵌入式企鹅圈一直专注于嵌入式Linux和物联网IOT两方面的原创技术分享,稍后会发布嵌入式企鹅圈的2 ...

  10. Jenkins hash

    最早,Bob Jenkins提出了多个基于字符串通用Hash算法(搜Jenkins Hash就知道了),而Thomas Wang在Jenkins的基础上,针对固定整数输入做了相应的Hash算法.其64 ...