http协议
来源:互联网 发布:名图轮毂17寸轮毂数据 编辑:程序博客网 时间:2024/05/29 10:23
一、HTTP简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。http请求是基于tcp请求的。
二、主要特点
2.1简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
2.2灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
2.3无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
2.4无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
2.5支持B/S及C/S模式。
2.1 工作流程
一次HTTP操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
三、HTTP之请求消息Request
3.1客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行,请求头,请求体。
3.2请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。
3.3请求头紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。
3.4请求体可以添加任意的其他数据。
四、HTTP之状态码
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
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 //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
五、HTTP的请求方法
①GET 请求指定的页面信息,并返回实体主体。
②HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
③POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
④PUT 从客户端向服务器传送的数据取代指定的文档的内容。
⑤DELETE 请求服务器删除指定的页面。
⑥CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 ⑦OPTIONS 允许客户端查看服务器的性能。
⑧TRACE 回显服务器收到的请求,主要用于测试或诊断。
我们看看GET和POST的区别
- GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
- GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
- GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
- GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
摘自:http://www.jianshu.com/p/80e25cb1d81a
- HTTP协议
- http协议
- HTTP协议
- HTTP协议
- HTTP协议
- http协议
- HTTP协议
- HTTP协议
- HTTP协议。。。
- HTTP协议
- HTTP协议
- HTTP协议
- HTTP协议
- HTTP协议
- http协议
- HTTP协议
- http协议
- HTTP协议
- 语音唤醒技术调研
- Postgresql备份与迁移(恢复)
- 关于hibernate5的一个小改动
- 偏置方差分解Bias-variance Decomposition
- LeetCode 101 Symmetric Tree
- http协议
- array array array (2017 ACM/ICPC Asia Regional Shenyang Online 1004)简单DP,最长公共子序列(Ologn)
- Cocos2d-x libcurl如何支持https
- windows下安装cv2模块
- Python爬虫的学习和实现-双福菜价爬取
- 系统学习深度学习(四十一)--PVANet
- java作业
- 健康问答语料的爬虫(C#)
- eclipse提示小应用程序未初始化