浅谈超文本传输协议(HTTP)

客户端和服务器端交互的过程

  1. 客户发起连接
  2. 客户发送请求
  3. 服务器响应请求
  4. 服务器关闭连接

概述

 通常,有http客户端发起一个请求,创建一个到服务器的端口指定的端口(默认80端口)的TCP连接。http服务器则在那个端口监听客户端的请求。一旦收到请求,服务器向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

请求信息->发出的请求信息包括以下几个

  • 请求行
    • 例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
  • (请求)头,
    • 例如Accept-Language: en
  • 空行
  • 其他消息体

请求行和标题必须以<CR><LF>作为结尾。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除Host外,都是可选的。 

GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)   #一个标识客户端的字符串(应用程序名称,版本,包含的信息,如主机操作系统和语言)
Host: example.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate

 

 请求方法

请求方法用来定义操作资源的方式,HTTP/1.1 协议中定义了八种请求方法:

    • GET:读取资源数据
    • POST:新建资源数据
    • PUT:更新资源数据
    • DELETE:删除资源数据
    • HEAD:读取资源的元数据
    • OPTIONS:读取该资源所支持的所有请求方法
    • TRACE:回显服务器收到的请求,主要用于测试或诊断
    • CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经
      由非加密的HTTP代理服务器)

请求头字段:用来传递客户端的更多信息,以及传递解析信息主题的必要信息

User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)   
Host: example.com
Accept-Language: en-us  #可接受的语言
Accept-Encoding: gzip, deflate  #支持的编码类型

#
  • Accept: 客户端接受哪些 Mine 类型。如 Accept: text/html
  • Referer: 从那个页面到的该页面。

 响应头字段:和请求消息类似,首部字段会包括服务器本身的一些信息指示、以及响应消息本身的元数据

Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT Content-Length: 88 Content-Type: text/html Connection: Closed

常见响应头有:

  • Content-Encoding: 数据的编码类型。如 Content-Encoding: gzip
  • Server: 服务器的名称。如 Server:thin 1.5.0 codename Knife
  • Location: 通知客户端新的资源位置。如 Location: http://www.github.com/login
  • Content-Type: 响应数据的类型。如 Content-Type:text/html; charset=UTF-8

Content-Encoding: 响应数据的编码格式。如 gzip。客户端会根据该值对响应内容解码。



转载于:https://www.cnblogs.com/Jdrops/p/5355606.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值