HTTP协议

1、什么是HTTP协议

  1. 超文本传输协议
  2. 基于请求与响应的无状态的、应用层协议

2、URL概念

1、protocol协议:最常用的是HTTP协议,http 通过 HTTP 访问该资源。 格式 HTTP://
file 资源是本地计算机上的文件。格式file:///,注意后边应是三个斜杠。
ftp 通过 FTP访问资源。格式 FTP://
2.、hostname(主机名),是指存放资源的服务器的域名系统(DNS) 主机名或 IP 地址。
3、 port(端口号),整数,可选,省略时使用方案的默认端口,各种传输协议都有默认的端口号,如
http的默认端口为80。https默认端口号为443。
4、path(路径),由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

5、query(查询),发送给http服务器的数据

6、fragment(信息片断)
例如:https://www.v2ex.com/api/nodes/show.json?name=python

protocol: https
host: www.v2ex.com
path: /api/nodes/show.json
? 问号是分割符号
Query : name=python, 多个参数用&隔开

4、HTTP协议请求方法

HTTP1.0定义了三种请求方法:GET,POST和HEAD。
HTTP1.1新增了五种请求方法:OPTION,PUT,DELETE,TRACE和CONNET。

GET: 是最常用的方法,通常用于请求服务器发送某个资源。
POST: 向指定资源提交数据进行处理请求(比如提交表单或者上传文件),比如登录一般都是POST请求。
HEAD: 与GET请求类似,只是返回的响应中没有具体内容,用于获取报头,主要测试超链接的有效性。
PUT: 与GET相反,向服务器写入资源,像修改内容用PUT方法。
DELETE: 请求服务器删除指定的页面。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
日常中比较常用的方法:GET、POST、PUT和DELETE

http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。 为了解决这个问题, Web程序引入了Cookie机制来维护状态。

5、HTTP消息结构

1)请求信息结构
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)
请求头部(header)
空行
请求数据(body)
眼见为实,抓包看一下:

(2)请求报头
请求报头概念:请求报头允许客户端向服务器传递请求的附加信息以及客户端自身的信息。

Accept:Accept请求头用于指定客户端接受哪些类型的资源
Text/html 表示客户端接受html文本
Image/gif 表示客户端接受gif图像格式的资源
Accept-Encoding:指定客户端接受的内容编码,没有设置的话表示都可以接受。
Accept-Charset:请求报头域用于指定客户端接受的字符集,没有设置的话表示都可以接受。
Aceept-Language:指定一种语言。
HOST:必须的报头,指定请求资源的internet主机和端口号。
User-Agent:请求的客户端类型
Authorization:用于证明客户端有权查看某个资源
Entity:Contet-Type:发送post时候,body的数据类型声明。

(3)响应信息结构
我们再看Response消息的结构, 和Request消息的结构基本一样。 同样也分为三部分,第一部分叫Response line(响应行),
第二部分叫Response header(响应头),第三部分是body,header和body之间也有个空行。

6、状态码

Response 消息中的第一行叫做响应行,也叫状态行,由HTTP协议版本号、状态码、状态消息三部分组成。
示例:HTTP/1.1 200 OK

1xx:指示信息 - 表示请求已接收,继续处理
2xx:成功 - 表示请求已成功接收、理解和接受
3xx:重定向 - 要完成请求必须进行更进一步的处理
4xx:客户端错误 - 请求语法有误或者请求无法实现
5xx:服务器端错误 - 服务器无法实现合法请求

7、get和post的区别

  • Get方式提交的数据最多只能是1024字节,因为客户端有限制,POST方式没有此限制
  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连;POST请求参数放在body中。
  • POST请求相对安全一些。
  • GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值