前言
http超文本传输协议是一个基于请求与响应模式的,无状态的,应用层的协议。是最常见的一种协议
URL详解
百度搜索的一个url地址:
https://www.baidu.com/s?wd=%E4%B8%8A%E6%B5%B7%E6%82%A0%E6%82%A0
%E5%8D%9A%E5%AE%A2&rsv_spt=1&rsv_iqid=0x91baaabd00070ba2&issp=1&f=8&
rsv_bp=1&rsv_idx=2
(1)http/https:协议类型
(2)Host:主机地址或者域名
192.168.x.xx:8080地址+端口号
www.baidu.com 域名
localhost:8080 localhost 本机地址
(3)port:端口号(默认端口号是80省略)
(4)Path:请求的路径(host之后,问号?之前)
(5)?问号是分隔号
(6)参数:name=value
(7)&:多个参数用&隔开
Request请求
(1)get肯定没有请求body
(2)post可以有请求body也可以为空。
请求方法
根据http标准,http请求可以使用多种方法:
http 1.0定义了三种请求方法:get,post,head。
http1.1新增了五种请求方法:options,put,delete,trace,和connect。
一般来说:
get请求指定页面信息,并返回实体主体。
Head类似于get请求,只不过返回的响应中没有具体的内容,用于获取保文头。
Post向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请
求体中。Post请求可能会导致新的资源的建立或已有资源的修改。
Put从客户端向服务器传送的数据取代制定的文档内容。
Delete请求服务器删除指定的页面。
Connect http1.1中预留给能够将连接改为管道方式的代理服务器。
Options允许客户端查看服务器的性能。
Trace回显服务器收到的请求,主要用于测试或者诊断。
request组成
客户端发送一个http请求到服务器的请求信息包括以下格式:
请求行,请求头部,空行,请求体四部分组成。
(1)请求头
Client
Accept 浏览器可接受的媒体类型。
Accept-Language:语言
Accept-Encoding:编码格式
User-Agent:客户端类型
Cookie:身份认证
Entity:
Conten-Type:发送post时候,body数据声明。
(2)get请求参数
get请求参数都在请求行里,可以再webforms的QueryString查看。
(3)post请求参数
请求参数可以是请求行的参数QueryString+body
-- QueryString 可以为空
-- body可以为空
Body参数的数据类型:
Content-Type:application/x-www.from-urlencoded
(4)post的body
Post的body常见的数据类型有五种,查看raw头部content-type
- 第一种:application/json: {“key1”:”value1”,”key2”:”value2”,”key3”:value3}
- 第二种:Content-Type:application/x-www.from-urlencoded
Key1=xxx&key=xxx&key3=000
- 第三种:multipart/from-data 这是一种表单格式
- 第四种:text/xml
- 第五种:文件下载的时候, octets/stream
(5)post请求json
Body参数为json格式
(6)post请求表单
Body参数为json格式
Response
(1)response:一般情况下,服务器接收并处理客户端发过来的请求后会返回一个http的响应信息。
http响应也有四部分组成:状态行(响应行),消息报头(响应头),空行,响应正文(响应体)。
(3)状态码:由三位数字组成,第一个数字定义了相应的类别,共分五种类别:
1xx:指示信息,代表请求已经接收,继续处理
2xx:成功-表示请求已被成功接收,理解,接收。
3xx:重定向--要完成请求必须进行更进一步的操作。
301-永久重定向
302-临时重定向
304:用到缓存,请求服务端资源未改变,用本地未过期缓存。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务端错误--服务器未能实现合法的请求。
常见状态码:
200 ok 客户端请求成功
400 bad request 客户端有语法错误,不能被服务器理解。
401 unauthorized 请求未经授权,这个状态码必须和www-authenticate报头域一起使用。
403 forbidden 服务器收到请求,但是拒绝服务(一般权限问题)
404 not found 请求资源不存在,地址错误
500 服务器发生不可预期的错误
503 server unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。