计算机网络之HTTP报文

计算机网络之HTTP报文

HTTP请求报文——来自用户一封简讯

请求报文是由客户向服务器发送的,请求的服务器服务的。既然是请求的短信,那就一定包含一些基本的信息
在这里插入图片描述

GET /somedir/page.html HTTP/1.1     // 请求行
Host:www.someschool.edu    //首部行
Connection:close	//首部行
User-agent:Mozilla/5.0		//首部行
Accept-language:fr		//首部行

(实体体)
  • 第一行,请求行,最基本的告诉别人,你的请求,请求的内容,和你遵守的HTTP协议版本:

    • 对应就是:方法字段 URL字段 HTTP版本字段

    • 方法字段:告诉服务器你要干什么

      • GET:向服务器请求HTML对象
      • POST:向服务器提交关键字。
        • 你搜索网页的时候,会向百度提交关键字;你写邮件的时候会有附件,一般是为空,除非你有什么附加说明
      • HEAD:对网络应用进行调试和跟踪
      • PUT:从用户端将对象上传到指定的Web服务器上的指定路径,网盘大致是这个道理
      • DELETE:允许用户或者应用程序将Web服务器上的对象删除,微信里的收藏删除
    • URL字段:请求对象是什么

      • 用来表示请求对象的标记,
    • HTTP版本字段:告诉计算机你遵守的HTTP协议是什么?

  • 第二行:首部行,你的对象具体存放在那台主机上

    • Host:www.someschool.edu
    • 收件人的地址
  • 第三行,因为TCP有两种,一种是持续性连接,一种是非持续性连接,在这里告诉服务器你是需要哪一种

    • close,发送完对象直接关闭TCP,采用非持续性连接
    • open,发送完对象不要关闭TCP,采用持续性链接
  • 后两行:User-agent和Accept-language

    • 是谁帮我代理的,指明用户代理服务器类型
    • 不同的服务器需要的HTML版本是不同的,服务器会根据你的代理版本发给你有有效的形式
    • Accpet-language:字如其义,你接受的语言类型
HTTP回应报文——来自服务器的一个快递

先看看一份快递单

在这里插入图片描述

再来对比一下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
(实体体,具体的数据)
首先来看看前三行,关于TCP连接的
HTTP/1.1  200  OK
Connection:close
Date:Tue,18 Aug 2015  15:44:04    GMT
  • 我们对比快递单内容,由于服务器和用户之间的是用已经建立好的TCP连接,相当于一个通道,所以不需要再写什么收件人,因为这个通道的后面只有一个收件人,将快递扔进去就行了,所以就将快递单的有半部分用户信息屏蔽了
    • 当然,既然是通道,那通道建立是否成功,都得给人家回个信,同时还得说明通道的使用方式
    • 对应“200 OK”状态码和“Connection:close”连接使用方式
  • 快递公司是有协议的,服务器的响应报文也是有遵从协议的,如HTTP/1.1
  • 最后注明一下发货日期,对应“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 		//对象的类型
  • 对比快递单的发件人信息,同样的回应报文也得说明一下发件人的信息,是谁发送的信息,对应就是”Server:Apache/2.2.3(CentOS)“
    • 补充一下,常用的服务器:IIS,Kangle, WebLogic,Apache,Tomcat,Nginx
  • 在对比一下快递单,上面会写货物的类型,大小,回应报文也同样会有相关内容,注明发送内容的大小和类型,同时还会注明这个对象生产创建日期,对应就是在这里插入图片描述
  • 然后就是快递的真正内容
最后了,再说明一下常见的一些状态码
  • 200 OK:请求成功,信息再返回的相应报文中
  • 301 Moved Permanently”请求对象被永久的转移了,但是相应的你的浏览器会自动的获取对应的连接,相当于跳转
  • 400 Bad Request:通用的差错代码,服务器理解不了你的请求
  • 404 Not Found:请求的文档不在服务器上
  • 505 HTTP Version Not Supported:服务器不支持对应的报文使用的HTTP协议,协议太老,我不支持
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章