HTTP协议
下面是我的老师整理的HTTP协议,分享一下。
**一、**报文格式
HTTP协议(Hypertext Transfer Protocol――超文本传输协议),它是浏览器端(客户端)与WEB服务器端交互的协议。
基于HTTP协议的客户机访问包括4个过程,分别是
1、建立TCP套接字连接 2、HTTP请求报文 3、HTTP应答报文 4、关闭TCP套接字连接
详情如下
1、创建TCP套接字连接
? 客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定
2、HTTP请求报文
? 客户端向WEB服务端发送请求报文,由 *请求行、请求头、请求体* 三部分组成
? 2.1 请求行:请求方式、请求的地址、HTTP协议版本
? 2.2 请求头:由名值对组成,每行一对,名和值之间使用冒号空格分隔
? 2.3 空行:位于请求行头和请求体之间,空行是必须的
? 2.4 请求体: 实体内容是报文传送的附加信息,一般供POST请求填写
3、HTTP应答报文
? WEB服务端向客户端发送应答报文,由 *响应行、响应头、响应体* 三部分组成
? 3.1 响应行:HTTP协议版本、状态码、状态消息
? 3.2 响应头:由名值对组成,每行一对,名和值之间使用冒号空格分隔
? 3.3 空行:位于响应行头和响应体之间,空行是必须的
? 3.4 响应体:实体内容是报文实际传输的信息
4、关闭TCP套接字连接
? 客户机与服务器双方关闭套接字连接,结束TCP/IP对话
二、状态码
下表列出了常见HTTP状态码,以及他们各自所代表的含义
状态码通常分为5种类型,分别以1~5五个数字开头,由三位整数组成
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
? 200 OK(成功)
3** 重定向,需要进一步的操作以完成请求
? 302 Found(临时移动)
4** 客户端错误,请求包含语法错误或无法完成请求
? 404 Not Found(未找到)
5** 服务端错误,服务器在处理请求的过程中发生了错误
? 500 Internal Server Error(内部服务器错误)
三、请求方式
HTTP1.0定义了三种请求方式:GET、POST和HEAD方法
HTTP1.1新增了五种请求方式:OPTIONS、PUT、DELETE、TRACE和CONNECT方法
*GET* 请求指定的页面信息,并返回实体主体
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
*POST* 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改
PUT 从客户端向服务器传送的数据取代指定的文档的内容
DELETE 请求服务器删除指定的页面
CONNECT HTTP/1.1协议中预留能够将连接改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器的性能
TRACE 服务器收到的请求,主要用于测试或诊断
get请求方式:
请求数据会以?的形式隔开拼接在请求头中,不安全,没有请求实体部分。
HTTP协议虽然没有规定请求数据的大小,但是浏览器对URL的长度是有限制的,所以不能携带大量的数据
post请求方式:
请求数据在请求实体中进行发送,在URL中看不到具体的请求数据,安全。适合数据量大的数据发送
|