[转]HTTP报文接口及客户端和服务器端交互原理
iii. 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
不论是TCP/IP协议也好,还是HTTP协议也好,java都是通过套接字(java.net.Socket)来实现的,可以参考我的另一篇技术博客:一个项目看java TCP/IP Socket编程(1.3版)
请求行由三个标记组成:请求方法、请求URL和HTTP版本,中间用空格分开
- GET -- 检索URI中标识资源的一个简单请求
- HEAD -- 与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
- POST -- 服务器接受被写入客户端输出流中的数据的请求
- PUT -- 服务器保存请求数据作为指定URI新内容的请求
- DELETE -- 服务器删除URI中命名的资源的请求
- OPTIONS -- 关于服务器支持的请求方法信息的请求
- TRACE -- Web服务器反馈Http请求和其头标的请求
- CONNECT -- 已文档化但当前未实现的一个方法,预留做隧道处理
User-Agent -- 用户即客户端可以使用的浏览器 ,如: Mozilla/4.0
Accept -- 即客户端可以接受的MIME 类型列表,如image/gif、text/html、application/msword
Content-Length -- 只适用于POST请求,以字节给出POST数据的尺寸
我们可以这样写出一个标准的 HTTP请求:
|
POST /blog/242842 HTTP1.1
HOST: cuishen.iteye.com/ User-Agent: Mozilla/4.0 Accpt: image/gif,text/html,application/pdf,image/png... key=value&key=value&key=value...... (POST()请求的数据) |
|
我要去访问的服务器端的地址是cuishen.iteye.com/ 它下面的资源 /blog/242842
连起来就是: cuishen.iteye.com/blog/242842 这个页面用的是 HTTP1.1 规范,我的浏览器版本是Mozilla/4.0 可以支持的MIME格式为 image/gif,text/html,application/pdf,image/png...等等 |
|
这个MIME格式我们在servlet中写法是:response.setContentType("text/html;charset=gb2312");
或者在jsp中写法是:<%@ page contentType="text/html;charset=gb2312"%> 或者在html中写法是:<meta http-equiv="content-Type" content="text/html; charset=gb2312"> |
|
HTTP1.1 --- 100 --- continue //继续追加后继内容
HTTP1.1 --- 200 --- OK //一切正常 HTTP1.1 --- 301 --- Moved Permanently //请求的文档在其它地方,会自动连接 HTTP1.1 --- 403 --- Forbidden //绝对拒绝你访问这个资源,不管授权没有 HTTP1.1 --- 400 --- Bad Request //客户端请求中的不良语法 HTTP1.1 --- 404 --- Not Found //最常见,绝对是大名鼎鼎的找不到 |
|
1xx:提示性信息,告诉客户端应该对某些其它的动作作出响应
2xx:这些就代表了请求成功 3xx:重定向,为了完成请求,必须进一步执行的动作 4xx:客户端错误 500-599: 服务器端的错误 |
|
Date: Sat, 31 Dec 2005 23:59:59 GMT --响应生成的日期和时间
ContentType: 'text/html;charset=gb2312' Content-Length: 122 --响应中的字节数,只在浏览器使用永久(Keep-alive)HTTP连接时需要。 |
|
ContentType: text/html;charset=gb2312
Content-Length: 122 --- 响应中的字节数,只在浏览器使用永久(Keep-alive)HTTP连接时需要。 |
[转]HTTP报文接口及客户端和服务器端交互原理的更多相关文章
- 浅析Java web程序之客户端和服务器端交互原理(转)
转载自http://www.cnblogs.com/lys_013/archive/2012/05/05/2484561.html 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全 ...
- 浅析Java web程序之客户端和服务器端交互原理
原文链接: https://www.iteye.com/topic/470019 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考 ...
- zookeeper原理解析-客户端与服务器端交互
Zookeeper集群中server数量总是确定的,所以集群中的server交互采用比较可靠的bio长连接模型:不同于集群中sever间交互zookeeper客户端其实数量是未知的,为了提高zooke ...
- [ActionSprit 3.0] FMS客户端与服务器端交互(传参)
客户端as: import flash.net.NetConnection; import flash.events.NetStatusEvent; var nc:NetConnection = ne ...
- oracle 客户端与服务器端字符集原理(转自totozlj)
1.环境假设: 名词解释:应用程序页面即用户在浏览器中看到的页面,一般程序员在写页面的时候都会在页面中设置编码,这个编码也即是数据在浏览器到web服务器间传输的编码,如果不设置则默认iso-8859的 ...
- Socket编程——客户端,服务器端的读写操作
URL网络编程,最大的特征就是一对一的响应! 1:客户端“写”,服务器端用于“读” package coreBookSocket2; import java.io.InputStreamReader; ...
- 通过GWT RPC实现客户端与服务器端的交互
GWT有两种与服务端进行交互的技术:GWT RPC和基于普通AJAX的远程交互技术.这里只介绍GWT RPC技术. 一个完整的RPC服务至少包含三个Java文件: 1.客户端远程接口类,需要继承Rem ...
- 架构师养成记--22.客户端与服务器端保持连接的解决方案,netty的ReadTimeoutHandler
概述 保持客户端与服务器端连接的方案常用的有3种 1.长连接,也就是客户端与服务器端一直保持连接,适用于客户端比较少的情况. 2.定时段连接,比如在某一天的凌晨建立连接,适用于对实时性要求不高的情况. ...
- Android客户端和服务器端数据交互
网上有很多例子来演示Android客户端和服务器端数据如何实现交互不过这些例子大多比较繁杂,对于初学者来说这是不利的,现在介绍几种代码简单.逻辑清晰的交互例子,本篇博客介绍第四种: 一.服务器端: 代 ...
随机推荐
- dategrid快速录入一行数据的一波操作
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue 数组重复,循环报错
Vue.js默认不支持往数组中加入重复的数据.可以使用track-by="$index"来实现.
- Oracle中的索引详解(转载)
一. ROWID的概念 存储了row在数据文件中的具体位置:64位 编码的数据,A-Z, a-z, 0-9, +, 和 /, row在数据块中的存储方式 SELECT ROWID, last_name ...
- 【译】MapCSS 与 CartoCSS
原文地址: https://gist.github.com/tmcw/4319642 CartoCSS 的作者是通过 Cascadenik 为灵感进而创作的 CartoCSS. CartoCSS 与 ...
- CentOS 7运维管理笔记(9)----Apache 安全控制与认证
Apache 提供了多种安全控制手段,包括设置Web访问控制.用户登陆密码认证及 .htaccess 文件等.通过这些技术手段,可以进一步提升Apache服务器的安全级别,减少服务器受攻击或数据被窃取 ...
- 使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群
由于网络架构的原因,在一般虚拟机或物理环境中常见的用 VIP 来实现双机高可用方案,无法照搬到 Azure 平台.但利用 Azure 平台提供的负载均衡或者内部负载均衡功能,可以达到类似的效果. 本文 ...
- 【Leetcode】【Medium】3Sum Closest
Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...
- nginx 开启gzip压缩--字符串压缩比率很牛叉
刚刚给博客加了一个500px相册插件,lightbox引入了很多js文件和css文件,页面一下子看起来非常臃肿,所以还是把Gzip打开了. 环境:Debian 6 1.Vim打开Nginx配置文件 v ...
- 如何在 MSBuild Target(Exec)中报告编译错误和编译警告
编译错误和编译警告 MSBuild 的 Exec 自带有错误和警告的标准格式,按照此格式输出,将被识别为编译错误和编译警告. 而格式只是简简单单的 error: 开头或者 warning: 开头.冒号 ...
- mvc 从客户端 中检测到有潜在危险的 Request 值
往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误: 从客户端(Content="<EM ><STRONG ><U >这是测试这...&qu ...