HTTP协议

1. 报文

  HTTP报文是HTTP应用程序之间发送的数据块,向Web服务器请求一个动作。这些数据块以一些文本形式的元信息开头,描述了报文的内容及含义,后面跟着可选的数据部分。HTTP报文在客户端、服务器和代理之间流动,一次HTTP请求,报文会从“客户端”流到“代理”再流到“服务器”,在服务器工作完成之后,报文又会从“服务器”流到“代理”再流到“客户端”。
  目前主流在用的是HTTP 1.1版本,HTTP1.1协议报文结构分为起始行、首部和主体。
在这里插入图片描述
在这里插入图片描述

1.1. 请求报文格式

在这里插入图片描述(1) 方法

a) GET
  当客户端要从服务器上读取文档,点开某个链接或者是通过浏览器上输入网址来浏览网页的时候,使用的都是GET方法。GET方法请求参数和对应的值附加在URL后面,利用一个?代表URL的结尾以及附带参数的开始,参数用key=value键值对的方式书写,参数和参数之间用&符号隔开。一般GET请求的参数的大小受限,最大不超过1024KB,由于参数明文的显示在了URL上面,因此不太适合传递私密的数据。

b) POST
  POST方法将请求的参数封装在了HTTP请求的请求体中,以名称/值的形式出现,可以传输大量的数据。POST请求一般用于表单数据的提交中。

c) HEAD
  HEAD就像GET,只不过服务端接受到HEAD请求后只返回响应头,而不会发送响应内容。当我们需要查看某个页面的状态的时候,使用HEAD是非常高效的,因为在传输的过程中省去了响应内容部分。

  GET产生一个数据包,POST产生两个数据包。对于GET请求,浏览器会把HTTP HeaderData一并发出去,服务器响应200(返回数据)。而对于POST,浏览器先发送Header,服务器响应100 continue,浏览器再发送data,服务器响应200

(2) URL
  URLhttp://开头的格式表明为HTTP协议下的资源。

1.2. 响应报文格式

在这里插入图片描述
(1) 状态码
  状态码是三位数字,描述了请求过程中所发生的情况。每个状态码的第一位数字都用于描述状态的一般类别(“成功”、“出错”等)。

状态码类型作用描述
1xx报告(请求被接收,继续处理)
2xx成功(请求被成功的接收并处理)
3xx重发(要完成请求必须进行更进一步的操作)
4xx客户端错误(客户端错误的协议格式或请求无法处理)
5xx服务器错误(服务器无法完成有效的请求处理)

(2) 原因短语

状态码原因短语中文描述
100Continue继续
200OK客户端请求成功
400Bad Request客户端请求有语法错误,不能被服务器理解
401Unauthorized请求未经授权
403Forbidden服务器收到请求,拒绝提供服务
404Not Found请求资源不存在
500Internal Server Error内部服务器错误
503Service Unavailable服务器不能处理客户端请求

2. 请求/响应步骤

(1) 客户端连接到Web服务器

  一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认是80)建立一个TCP套接字连接。

(2) 发送HTTP请求

  通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行,请求头部,空行和请求体4个部分构成。

(3) 服务区接收解释请求并返回HTTP响应

  Web解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端获取。一个响应由状态行,响应头,空行和响应数据4部分组成。

(4) 释放连接TCP连接

  若Connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭TCP连接,释放TCP连接。若Connectionkeepalive,则该连接会保持一段时间,该时间内可以持续使用该连接接收请求,做出响应。

(5) 客户端浏览器解析HTML内容

3. 参考网址

(1) HTTP报文详解

(2) HTTP协议详解

(3) HTTP报文一些基础知识

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值