HTTP协议简介

**

HTTP超文本传输协议

**
HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议
所有的WWW文件都必须遵守这个标准。
设计HTTP最初的目的是为了提供一种发布者和接收HTML页面的方法
是基于TCP/IP通信协议来传递数据的
一个属于应用层的面向对象的协议
浏览器作为HTTP客户端推过URL向HTTP服务端即web服务器发送所有请求

主要特点:简单快速,无连接,无状态,支持B/S及C/S 模式
URL和URI

HTTP使用统一资源标识符URI(Uniform Resource Identifiers)来传输数据和建立连接
URL是一种特殊的URI,包含了用于查找某个资源的足够的信息
普通的URL组成
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#

  1. 协议部分:该URL的协议部分为’http’,这代表网页使用的是HTTP协议
  2. 域名部分:该URL的域名为www.aspxfans.com 也可以是IP
  3. 端口部分:域名和端口之间使用‘:’作为分隔符。如果省略默认80端口
  4. 虚拟目录部分:从域名后的第一个‘/’开始到最后一个‘/’为止,是虚拟目录部分
  5. 文件名部分:从域名后面最后一个‘/’开始到‘?’微支付,是文件部分,不是URL必须的部分
  6. 锚部分:从#开始
  7. 参数部分:从?开始参数是键值对的形式出现的中间用=号,参数之间用‘&’分隔符
HTTP请求方法

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
1.GET 请求指定的页面信息,并返回实体主体。
2.POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。 POST请求可能会导致新的资源的建立或已有资源的修改。
3.HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
4.PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5.DELETE 请求服务器删除指定的页面。
6.CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7.OPTIONS 允许客户端查看服务器的性能。
8.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工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据,服务器以一个状态行为响应,响应内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

HTTP请求响应的步骤
  1. 客户端连接到Web服务器
  2. 发送HTTP请求
  3. 服务器接收请求并返回HTTP响应
  4. 释放连接TCP连接
  5. 客户端浏览器解析HTML内容
HTTP报文结构

HTTP协议:

请求客户端:
	请求行:请求方法 URL HTTP版本
			GET / ? name=zzy HTTP/1.1
	请求头:键值对结构
			User-Agent:Python
			Accept:*
	空行:代表请求头结束
	请求体:当Post请求有请求体
响应:服务端
	响应行:HTTP版本 状态码 状态描述
			HTTP/1.1 200 OK
	响应头:键值对构成
			Content-type:text/html
	空行:代表响应头结束
	响应体:响应数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值