HTTP:是Hyper Text Transfer Protocol的缩写,即 超文本传输协议,是一种请求/响应式的协议。
具有灵活的特点,可以运行任意类型的数据,该数据的类型由Content-Type加以标记。
属于无状态协议,即对事物处理没有记忆能力,如果后续处理需要前面的信息,则必须重新传输。
现在通用的一般都是HTTP1.0和HTTP1.1这2个版本。介绍一下这两个版本的区别:
- HTTP1.0在传输数据的时候,客户端与服务器端建立连接后,每次只能处理一个HTTP请求。
- HTTP1.1在建立连接后,可以传送多个HTTP请求和响应,从而减少了建立和关闭连接的消耗和耗时。
HTTP地址即网页地址,也就是URL(统一资源定位符),在浏览器的地址栏上就是。
URL格式:http://host[:port][abs_path]或者https://host[:port][abs_path]。
在上述格式中,http即http协议,https是加密了的http协议。host是Internet主机域名或者IP地址。port是端口号,一般是空,默认的是80端口,有时候也会出现8080端口。abs_path是请求资源的URI,就是主机上资源的目录。
HTTP的8种请求方式
最常用的请求方式是get和post。他们的区别为:
- GET方式的请求传输的数据不能超过1kb。而且如果浏览器请求的URL中含有参数,在浏览器生成的请求消息中,参数部分将附加在请求行中的资源路径后面。会在url地址栏以明文显示。
- POST传输的数据无大小限制,是通过实体内容传递数据的。而且请求方式比GET方式更安全。post请求方式传递的参数隐藏在实体内容中,用户是看不到的,即不会再url地址栏以铭文显示。
http的5种状态码:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
几个web开发中常见的http状态码:(最好可以记住)
200:服务器成功处理了客户端的请求。
204:请求被受理但没有资源可以返回.
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
302:临时重定向,请求的资源临时从不同的url响应请求,但请求者应继续使用原有位置来进行以后的请求。例如:在请求重定向中,临时uri应该是响应的Location头字段所指向的资源。
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上。
304:发送附带条件的请求时,条件不满足时返回,与重定向无关。
307:临时重定向,与302类似,只是强制要求使用POST方法。
400:请求报文语法有误,服务器无法识别。
401:请求需要认证。
403:资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。请求的对应资源禁止被访问。
404:服务器找不到请求的资源。例如:访问服务器不存在的网页经常返回此状态码。
500:服务器发生错误,无法处理客户端的请求。
503:服务器正忙。
本文作者:冰羽
本文地址: https://bingyublog.com/2018/03/22/详解HTTP协议/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!