HTTP协议简介:
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
- HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
- HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP报文可以分为两类:请求报文和响应报文。
请求报文:
三部分组成: 请求行,请求头部,请求数据
-
请求行:
从左到右:请求方法 URL 协议版本 -
请求头部
从左到右:头部字段名 值 -
请求数据
响应报文:
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
- 状态行
协议版本号 响应状态码 原因短语
GET/POST的不同:
- POST参数不会保存在浏览器历史中。GET参数保留在浏览器历史中。
- 当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符,不过好像不同浏览器是不一样的)。POST:无限制。
- 对数据类型的限制:GET只允许 ASCII 字符。POST:没有限制。也允许二进制数据。
- 作用上看:GET - 从指定的资源请求数据。POST - 向指定的资源提交要被处理的数据
URL构成
http://www.github.com:8080/index.html?user=li-xinyang&lang=zh-CN#home
| | | | | |
protocol | | | | |
hostname port | | |
\ / pathname search hash
host
protocol :协议
hostname:域名
pathname:路径名
search:搜索参数
hash:hash描点
可选部分包括:
- port
- pathname
- search
- hash