http协议
HTTP 协议概述:
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或者规则
超文本传输协议(HTTP) 是一种通信协议,它允许将超文本标记语言(HTML)文档从 Web服务器
传送到客户端的浏览器, 目前我们使用的是 HTTP/1.1 版本
Web 服务器, 浏览器,代理服务器
打开浏览器, 输入URL 后, 浏览器给 Web 服务器发送了一个 Request, Web 服务器接到 Request 后进行处理
生成响应的 Response(对象), 然后发送给浏览器, 浏览器解析 Response 中的 HTML, 就看到网页了
我们的 Request 有可能是经过了代理服务器, 最后才到达 Web 服务器的.
代理服务器就是网络的中转站, 功能有:
1.提高访问速度, 大多数的代理服务器都有缓存功能
2.隐藏身份.
URL(Uniform Resource Locator) 地址
地址用于描述一个网络上的资源
基本格式:
schema://host[:path#]/path/.../[?query-string]
schema : 指定底层使用的协议(例如: http, https, ftp)
host : HTTP 服务器的 IP 地址或者域名
port# : HTTP 服务器的默认端口号是80, 默认的情况可以省略, 如果使用了别的端口, 必须指名,:
例如: http://www.baidu.com:8080/
path : 访问资源的路径
query-string 发送给 Web 服务器的数据
URL 的例子
http://www.baidu.com/sj/test/test.aspx?name=sviergn&x=true
schema : http
host : www.baidu.com
path : /sj/test/test.aspx
query string : name=sviergn&x=true
HTTP 协议是无状态的
http 协议是无状态的, 同一个客户端的这次请求和上次请求是没有关系的,
对于 http 服务器来说, 它并不知道这两个请求来自同一个客户端.
为了解决这个问题, Web 程序引入了 Cookie 机制来维护状态
打开一个网页, 需要浏览器发送多次 Request
1.当你在浏览器输入 URL http://www.baidu.com 的时候,浏览器发送一个 Request
去获取 http://www.baidu.com 的 html, 服务器把 Response 发送回给浏览器
2.浏览器分析 Rrsponse 中的 HTML, 发现其中引用了很多其他文件, 比如图片, CSS文件, JS文件.
3.浏览器会自动再次发送 Request 去获取图片, CSS文件, 或者 JS 文件
4.等多有的文件都下载成功后. 网页就被显示出来了
Get和Post方法的概述
Htp协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET.POST.PUT.DELETE. 一个URL地址用于描述一个网络上的资源,
而HTTP中的GET POST PUT DELET E就对应着对这个资源的查、改,增,删4个操作。
我们最常见的就是 GET 和 POST 了. GET般用于获取/查询资源信息。而 POST 一般用于更新资源信息
GET和POST的区别
1 GET规交的数据会放在URL之后,以7分别URL和传输数据,参数之间以&相连。如 : EdtPosts asp?name-test1&id=123456
POST 方法是把提交的数据放在HTTP包的Body中
2 GET提交的数据大小有限制因为湖览器对URL的长度有限制),面POST方法提交的数据没有限制
3 GET方式需爱使用Request QuerySting来取得变量的值,而POST方式通过Request.Form 来获取变量的值
4 GET方式提交数据会带来安全问题,此如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上
在发送密码或其他敏感信息时, 绝不要使用 GET, POST更安全, 因为不会保存在浏览器历史或 web 服务器日志中.
GET后退按钮/刷新无害,PIST数据会被重新提交(浏览器应该告知用户数据会校重新提交)
GET书签可收藏, POST为书签不可收藏
GET能被缓存,POST不能缓存,
GET历史参数保留在浏览器历史中。PSOT参数不会保存在浏览器历史中
GET对数据据长度有限制,当发送教据时,GET方法向 URL 添加数据 : URL的长度是受限制的(最大长度是2048 个字符)。PST无限制。
GET只允许ASCIL 字符。POST没有限制.也允许二进制数据。
HTTP/1.1 中定义了5类状态码,状态码由三位数字定义了响应的类别:
1XX : 提示信息 - 表示请求已被成功接收继续处理
2XX : 成功 - 表示请求已被成功接收, 理解, 接收
3XX : 重定向 - 要完成请求必须进行更进一步的处理
4XX : 客户端错误 - 请求有语法错误或请求无法实现
5XX : 服务端错误 - 服务器未能实现合法的请求
常见的状态码
200 : 请求成功,浏览器会把响应体内容显示在浏览器中;
302 : 重定向,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;
304 : 代表上次文档已经被缓存了,还可以继续使用
404 : 请求的资源没有找到,说明客户端错误的请求了不存在的资源;
405 : 不支持的请求方式
500 : 请求资源找到了,但服务器内部出现了错误;
503 : 服务器当前不能处理客户端的请求, 一段时间后可能恢复正常