了解HTTP协议

  http协议全称超文本传输协议(hypertext transfer protocol),就是用来定义浏览器与客户机数据交换的一个过程,java web中servlet 的各种方法也是建立在http请求与响应的基础,而http协议也是网络基础协议tcp/ip协议的应用级表现,因此http协议是web应用的基石。
    目前流行的版本为http1.1,相比于1.0支持客户端与服务器连接后访问多个web资源。http请求对应浏览器向服务器发出的请求信息,其具体分为请求行,请求头,空白行.如下图:

     请求行(状态行):首先显示其请求方式(get,post,trace,delete,head,put,option),默认为get,表单提交为post,二者区别在于get提交的数据跟在其请求的url后,以&隔开,其数据大小不能超过1k,post提交数据在协议空白行里,其大小无限制。请求行之后显示的为请求的web资源名,协议版本号。
     请求头:显示各个字段及其内容。Accept:告诉服务器客户机支持的压缩类型,例如:text/html,image/*.其为支持文本与图像格式。*/*为支持所有格式。Accept-Encoding:告诉服务器其支持的数据压缩格式。Accept-charset:告诉服务器客户机支持的编码格式。Accept-language:告诉服务器客户机的语言环境,英文或中文等。if_modified-since:提供其客户机资源的缓存时间,比如访问某网站首页,浏览器将其资源加入缓存,当下次再次访问其网站时,服务器会将其提交的时间与网站最新的更新时间对比,若更新时间早于其提交时间,则浏览器直接从缓存中提取资源,从而减小服务器的压力。Refere:告诉服务器访问该页面时客户机是从哪个页面跳转过来的,此法主要用于防盗链,保护其网站的资源,防止其他网站以超链接形式直接跳转至本网站重要资源。user-agent:告诉浏览器其运行环境,windows内核,以及浏览器版本等。Connection:告诉服务器请求后是保持链接或者断掉链接,keep alive/close.
    空白行:当请求方式为post时,显示提交的数据
    http响应对应服务器对客户机请求后做出的响应包。如下图:

    状态行:主要显示服务器的处理结果。首先显示http版本信息,其次显示状态码,状态码由3为十进制数组成,常见状态码及其意义如下。200,202:客户机请求成功,302:客户机再请求别的地址,304,307:客户机去拿缓存,403:客户机请求错误,404:客户机请求的web资源没有或请求地址没有,500:服务器有问题。
响应头:各个字段对应服务器对客户机的响应信息以及对数据的响应控制。Location:配合302状态码使用,显示其为客户机。重定向的地址。Server:告诉客户机本服务器的类型。Content-Encoding:告诉客户机数据的压缩格式。Content-Length:告诉客户机压缩后的数据长度。Content-Type:返回的数据类型。Refresh:告诉客户机隔多长时间刷新一次(请求服务器)。Content-Disposition:attachment;filename=”….”,告诉客户机以下载方式打开该文件。Transfer-Encoding:告诉客户机数据的传送格式。etag:与缓存相关,客户机第一次请求服务器的某个web资源时,服务器会以etag的形式返回给客户机该web资源的唯一标识符(相当于id),当客户机第二次访问该web资源时会带上该etag值,与现今etag比对后若一样则客户机直接拿缓存。Expiress:告诉客户机把回送的数据缓存的时间,若小于此时间则客户机访问时一直拿缓存,—1则不拿缓存。
空白行:显示服务器返回给客户机的实际数据内容。
    由此可看出,整个web应用开发都是基于http协议的。

你可能感兴趣的:(浏览器)