应用层Application layer: HTTP, sinc

2020-07-23  本文已影响0人  Mc杰夫

2020.07.23

HyperText Transfer Protocol (HTTP)是Web的应用层协议。它由两个程序实现:一个客户程序和一个服务器程序。在不同的端系统中的程序通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式,定义了Web客户向Web服务器请求Web页面的方式,服务器向用户传递Web页面的方式。






(2020.07.24)

GET /some_dir/page.html HTTP/1.1
Host: www.someweb.com
Connection: close
User-agent: Mozilla/5.0
Accetp-language: fr

上面的请求报文中的第一行称为请求行(request line),其他部分称为首部行(header line)。request line有三个字段:方法字段、URL字段和HTTP版本字段。header line中的Host是请求的host name。Connection: close代表了非持续连接,服务器在发送完被请求对象后关闭TCP连接。User-agent代表用户的浏览器,服务器可以根据用户浏览器发送相同对象的不同版本,注意这些版本对应的URL地址相同。

HTTP/1.1 200 OK
Connection: close
Date: Tue, 18 July 2020 10:00:00 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Wed, 10 Jun 2020 10:00:00 GMT
Content-Length: 9999
Content-Type: text/html
(entity body data)

第一行初始状态行(status line),其他是首部行(header line)。entity body包含了所请求的对象本身。Date和Last-Modified的区别:Date表服务器从文件系统中检索到该对象,将对象插入报文并发送该报文的时间;LM是对象创建或最后修改的日期,该日期对web cache server非常重要。Content-Type: text/HTML表示HTML文本。

telnet some_web.com 80
GET /some_url/xxx.php HTTP/1.1
Host: some_web.com

在terminal输入上面指令回车就可看到报文。


Reference

  1. 计算机网络(自顶向下方法)原书第7版,James F. Kruose and etc., 陈鸣 译, 机械工业出版社,2019年
上一篇 下一篇

猜你喜欢

热点阅读