HTTP精简教程二:简单的HTTP协议

HTTP协议

HTTP协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信。
请求访问资源的一端为客户端,响应资源的一端为服务器。请求必须从客户端发出,而服务器回复响应,因此建立通信是从客户端开始的。

请求报文

POST /index.htm HTTP/1.1

Host: hackr.jp

Connection: keep-alive

Content-Type: application/x-www-form-urlencoded

Content-Length: 16

 

name=ueno&age=25

报文说明

  • 方法

POST

  • URI

/index.htm

  • 协议版本

HTTP/1.1

  • 请求首部字段

Host: hackr.jp

Connection: keep-alive

Content-Type: application/x-www-form-urlencoded

Content-Length: 16

  • 内容实体

name=ueno&age=25

响应报文

HTTP/1.1 200 OK

Date: Tue, 10 Jul 2012 06:50:15 GMT

Content-Length: 363

Content-Type: text/html

 

<html>

报文说明

  • 协议版本

HTTP/1.1 200 OK

  • 状态码

200

  • 状态码的原因短语

OK

  • 响应首部字段

Date: Tue, 10 Jul 2012 06:50:15 GMT

Content-Length: 363

Content-Type: text/html

  • 主体

<html>

HTTP是不保存状态的协议

为了更快的处理大量的事物,确保协议的伸缩性,因此把HTTP协议设为无状态协议;为此,引入Cookie技术保存用户的登陆状态。

HTTP请求方法

  • GET:获取资源

GET方法用来请求访问已被URI识别的资源。

  • POST:传输实体主体

虽然GET方法和POST方法都可以用来传输实体,但一般不用GET方法。

GET与POST的区别

方法GETPOST
本质索取数据提交数据
安全性
执行效率
机制将参数拼接在url上,明文传输将表单内各个字段与其内容放置在HTML HEADER内一起传送到action属性所指的URL地址
大小取决于浏览器和系统理论上没有限制,取决于浏览器和系统
地址栏输入支持不支持
浏览器历史记录保留参数参数不保留
编码方式url编码多种编码方式
  • PUT:传输文件

PUT方法用来传输文件,类似FTP协议文件上传,请求的报文中包含文件内容,然后保存在URI指定位置。
但是HTTP/1.1的PUT方法不带验证机制,任何人都能上传文件,存在安全性问题,慎用。

  • HEAD:获取报文首部

类似GET方法,区别在于只返回报文首部,不返回报文主体。

  • DELETE:删除文件

与PUT方法相反,用来删除文件,DELETE方法按请求URI删除指定资源。
但是HTTP/1.1的DELETE方法同样不带验证机制,存在安全性问题,慎用。
区别

  • OPTIONS:询问支持方法

返回服务器支持的方法

  • TRACE:追踪路径
  • CONNECT:要求用隧道协议连接代理

持久连接

旨在建立1次TCP连接后进行多次请求和响应的交互,在HTTP/1.1中默认都是持久连接

    原文作者:后端开发
    原文地址: https://segmentfault.com/a/1190000018570190
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞