HTTP协议概述

一、简介

 

HTTP协议(超文本传输协议)是从万维网服务器传输超文本到本地浏览器的传送协议

HTTP是一个基于TCP/IP通信协议来传递数据(HTMP/文件/图片/查询结果)

HTTP是一个属于应用层的面向对象的协议

HTTP协议工作于客户端-服务端结构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送相应信息

 

 

二、主要特点

 

1、简单快速 客户端向服务端发送请求服务时,只需要发送请求方法和路径

2、灵活:HTTP允许传输任意形式的数据对象,具体由Content-type加以标记

3、无连接 限制每一次连接只处理一个请求

4、无状态 协议对事务处理没有记忆能力

5、支持B/S和C/S模式

 

三、HTTP的URL与URI

四、HTTP之请求消息Request

https://www.cnblogs.com/zhuifeng/p/4072248.html

(1)请求行

 

mothod+url+版本

GET user/info HTTP1.1

 

(2)请求头信息

 

用于说明服务器要使用的附加信息

Host Referer Accept Accept-Encoding Accept-Charset Cookie

 

(3)空白行

(4)请求数据

 

 

五、HTTP之相应消息Response

 

(1)状态行

 

HTTP版本+状态码+状态信息 HTTP1.1 200 OK

 

(2)应答头信息

 

(3)空白行

(4)响应数据

服务器返给浏览器的实体正文

 

六、状态码

http://www.runoob.com/http/http-status-codes.html

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:

200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

 

七、工作原理流程

 

(1)TCP连接 web浏览器首先通过网络与web服务器建立连接,也就是TCP连接。HTTP是比TCP更高层次的应用层协议,只有低层次建立连接后才可以作用于高层次的连接,因此要建立TCP连接(三次握手)

(2)发送请求命令 GET /user/info HTTP1.1

(3)发送请求头信息 浏览器发送请求命令后,还要发送请求头信息,发送完后,发送一个空白行标识结束

(4)服务器应答 服务端对客户端的请求做出应答 HTTP1.1 200 OK 服务版本 状态码 状态信息

(5)服务端发送应答头信息

(6)web服务器向浏览器传输数据 在服务器发送完头信息时,发送一个空白行表示结束。然后根据Content_Type应答头信息的所描述的格式传输数据

(7)web服务器关闭TCP连接

一般情况下,当服务器向客户端发送完数据时,就要关闭连接

但是如果服务端或者客户端的头信息中含有 connection keep-alive,则TCP连接仍处于打开状态,于是浏览器可以继续通过相同的连接发送请求,保持连接节约了为每次请求建立新连接的时间,还节约了网络宽带

 

八、POST与GET请求

 

(1)、GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.

(2)、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

(3)、GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

(4)、GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值