概述
http协议
HTTP是一个基于TCP/IP通信协议来传递数据
HTTP是无连接的,每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
HTTP是无状态的,协议对于事务处理没有记忆能力。每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况。服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
消息结构
请求消息头
POST http://127.0.0.1:8081/index HTTP/1.1
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
User-Agent: PostmanRuntime/7.3.0
Accept: */*
Host: 127.0.0.1:8081
accept-encoding: gzip, deflate
content-length: 9
Connection: keep-alive
bv=123456
POST http://127.0.0.1:8081/index HTTP/1.1
:请求行 包含:请求方法、请求地址、协议版本
//消息头Content-Type: application/x-www-form-urlencoded
:发送数据的数据类型,当前为表单数据cache-control: no-cache
:消息头,不使用服务器缓存,直接请求User-Agent: PostmanRuntime/7.3.0
:客户端引擎Accept: */*
:接收数据的数据类型,当前为任意数据类型Host: 127.0.0.1:8081
:请求服务器地址和端口号accept-encoding: gzip, deflate
:接收数据的压缩编码格式content-length: 9
:发送数据的字符长度Connection: keep-alive
:保持长连接- 换行:区分消息头和发送数据实体
bv=123456
:发送的数据实体
响应消息
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Content-Language: zh-CN
Transfer-Encoding: chunked
Date: Sun, 29 Sep 2019 06:54:54 GMT
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
访问者:
<h1>用户名:崀山</h1>
<h1>年龄:23</h1>
<h1>性别:男</h1>
</body>
</html>
HTTP/1.1 200
:响应行,包含:协议版本、状态码Content-Type: text/html;charset=UTF-8
:返回数据类型,当前为html,编码格式为utf-8Content-Language: zh-CN
:返回数据的语言为中文Transfer-Encoding: chunked
:传输编码采用分块编码,每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的 CRLF(rn),也不包括分块数据结尾的 CRLF。最后一个分块长度值必须为 0,对应的分块数据没有内容,表示实体结束。,最后一个分块长度为零,标识传输结束。Date: Sun, 29 Sep 2019 06:54:54 GMT
:响应时间和格式- 换行:区分消息头和返回数据实体
<!DOCTYPE html><html>...</html>
:返回数据实体
最后
以上就是含糊橘子为你收集整理的http协议的全部内容,希望文章能够帮你解决http协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复